IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массив Процедурами(ввод и вывод), помогите решить программу
S2DenT
сообщение 2.12.2010 17:25
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Люди, помгите !!
Задача такая:
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.


подскажите где ошибка и как ее исправить????

Сообщение отредактировано: S2DenT - 2.12.2010 18:46


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 2.12.2010 17:37
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
S2DenT
сообщение 2.12.2010 18:14
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Цитата(TarasBer @ 2.12.2010 17:37) *

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


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

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

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

и что за тег (code)???

Сообщение отредактировано: S2DenT - 2.12.2010 18:24


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 2.12.2010 18:27
Сообщение #4


Гость






Насчет тега 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
сообщение 2.12.2010 18:44
Сообщение #5





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Цитата(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 нулем, кстати...


Я то прекрасно понимаю что его надо вернуть, но как это сделать?????

Сообщение отредактировано: S2DenT - 2.12.2010 18:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 2.12.2010 18:46
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


otr := s;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
S2DenT
сообщение 2.12.2010 18:55
Сообщение #7





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Цитата(Client @ 2.12.2010 18:46) *

otr := s;




Спасибо огромное!!!=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.04.2024 7:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"