Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив Процедурами(ввод и вывод)
Форум «Всё о Паскале» > 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;




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