Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив Процедурами(ввод и вывод)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
S2DenT
Люди, помгите !!
Задача такая:
1) Введите 2 массива стостоящие не более чем 13 элементов
2) Вывести их на экран
3) Сформировать новый массив являющийся частным 1 на 2 массив
4)Вывести новый массив на экран!
5)Подсчитать количество отрицательных элементов

Я прогу на писал , но она не проходит(((

вот исходник.
Program Massiv; 
Uses crt;
Const n=13;
type mas=array[1..n] of integer;
Vara,b,c:mas;
m,i:integer;
Sa,Sb,Sc:integer;
Procedure wwod(var x:mas; n:integer; name:char);
Vari:integer;
Begin
for i:=1 to n do
Begin
Write(name,'[',i,']=');
ReadLn(x);
End;
End;
Procedure wiwod(var x:mas; n:integer; name:char);
Vari:integer;
Begin
for i:=1 to n do
Begin
Write(x);
Writeln;
End;
End;
Procedure newmas(x,y:mas; n:integer; var z:mas);
Var i:integer;
Begin
for i:=1 to n do z:=x/y
End;
Function otr(x:mas; n:integer):integer;
Vari:integer;
S:integer;
Begin
For I:=1 to n do
If x[i]<0 then
S:=S+1;
End;
Begin
Clrscr;
Writeln('Введите размер массива:');
Readln(m);
Writeln('Введите первый массив:');
Wwod(a,m,'a');
Writeln('Введите второй массив:');
Wwod(b,m,'b');
Writeln('Вывод первого массива:');
Wiwod(a,m,'a');
Writeln('Вывод второго массива:');
Wiwod(b,m,'b');
newmas(a,b,m,c);
Writeln('Вывод нового массива:');
Wiwod(c,m,'c');
Sa:=otr(a,m);
Sb:=otr(b,m);
Sc:=otr(c,m);
Writeln('Количество отрицательных элементов первого массива=',Sa);
Writeln('Количество отрицательных элементов второго массива=',Sb);
Writeln('Количество отрицательных элементов нового массива=',Sc);
Readln;
End.


подскажите где ошибка и как ее исправить????
TarasBer
Попытка присвоить целой переменной вещественное значение.
в выражении z[i] := x[i] / y[i] - правая часть дробная, а левая - целая.
Напиши тип так:
type mas=array[1..n] of real;
И используй тег (code)
S2DenT
Цитата(TarasBer @ 2.12.2010 17:37) *

Попытка присвоить целой переменной вещественное значение.
в выражении z[i] := x[i] / y[i] - правая часть дробная, а левая - целая.
Напиши тип так:
type mas=array[1..n] of real;
И используй тег (code)


Сделал помогло!!=))
спасибо большое!!=))

теперь другая проблемка, он при подсчете количества отрицательных элементов выдает непонятно откуда взятые значения которые нигде не используются!!=((

скрин прилагается

и что за тег (code)???
volvo
Насчет тега Code еще раз повторить? Отредактируй первый пост, читать же невозможно. Просто нажми "Изменить->Полное редактирование", там выдели весь текст программы и в комбобоксе Code выбери нужный язык...

По теме:
Function otr(x:mas; n:integer):integer;
Vari:integer;
S:integer;
Begin
For I:=1 to n do
If x<0 then
S:=S+1;
End;
- функция не возвращает значение. То, что ты вычислил S - это прекрасно, но надо же его вернуть... Не забудь инициализировать S нулем, кстати...
S2DenT
Цитата(volvo @ 2.12.2010 18:27) *


По теме:
Function otr(x:mas; n:integer):integer;
Vari:integer;
S:integer;
Begin
For I:=1 to n do
If x<0 then
S:=S+1;
End;
- функция не возвращает значение. То, что ты вычислил S - это прекрасно, но надо же его вернуть... Не забудь инициализировать S нулем, кстати...


Я то прекрасно понимаю что его надо вернуть, но как это сделать?????
Client
otr := s;
S2DenT
Цитата(Client @ 2.12.2010 18:46) *

otr := s;




Спасибо огромное!!!=)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.