Здравствуйте, гость ( Вход | Регистрация )
| иван 23 |
16.12.2009, 13:55
Сообщение
#1
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
Дано произвольное значение b и два произвольных массива G, V размера n, m соответственно. Найти сумму элементов массива G, меньших заданного b, а также сумму элементов массива V, меньших заданного b. Исходные данные взять самостоятельно.
вот мои наработки, но если через тип описывать, то роде как по другому. помогите разобраться с решением Program Mas; Type g: array [1..n] of integer; v: array [1..m] of integer; Var n,m,S1,S2:integer; Begin writeln('Введите n'); readln(n); writeln('Введите m'); readln(m); Randomize; For I := 1 to n do g[I] := Random(500); For I := 1 to m do v[I] := Random(500); Write(‘Введите число b’); Readln((IMG:style_emoticons/default/cool.gif); s1:=0; s2:=0; For i:=1 to n do If g[i]<b then s1:=s1+i; For i:=1 to m do If v[i]<b then s2:=s2+i; writeln('Сумма элементов массива g ',s1); writeln('Сумма элементов массива v ',s2); readln; End. |
![]() ![]() |
| граф Монте-Кристо |
16.12.2009, 14:01
Сообщение
#2
|
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
Зачем Вы делаете s=s+i? Ведь Вы добавляете к s не элемент, а его индекс. Пишите тогда уже s=s+g[i].
|
| иван 23 |
16.12.2009, 14:29
Сообщение
#3
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
спасибо, так в этом и была моя ошибка?
|
| граф Монте-Кристо |
16.12.2009, 15:11
Сообщение
#4
|
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
Ну в этом коде вроде бы нету больше ошибок.
|
| иван 23 |
17.12.2009, 10:36
Сообщение
#5
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
но если через тип описывть, то он пишет, что здесь:
g: array [1..n] of integer; v: array [1..m] of integer; нужно вместо : поставить =, а затем он пишет, что n m неизвестные идентификаторы |
| иван 23 |
17.12.2009, 13:54
Сообщение
#6
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
а еще вопрос такой: а можно ли вместо типа например решить ее как Procedure? тогда и m n может описывать не придется?
|
| граф Монте-Кристо |
17.12.2009, 14:57
Сообщение
#7
|
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
Да,это упустил из виду. Естественно, пас ругается. Переменные n и m определены после того,как уже появились в тексте.
Думаю,что это не так уж и сложно(про процедуру). |
| иван 23 |
17.12.2009, 15:16
Сообщение
#8
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
помогите пожалуйста определить эти переменные n и m заранее, а через процедуру я не разобрался как делать, так что приходится через тип пробовать
|
| Julia |
18.12.2009, 1:30
Сообщение
#9
|
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель |
Объявите любые 2 константы (не m и n), как вы делали в других задачах. Или при описании массивов зафиксируйте их размер (он должен быть больше, чем предполагаемые значения m и n).
И замените слово type на var. |
| Julia |
18.12.2009, 1:58
Сообщение
#10
|
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель |
Описание типов:
type <идентификатор типа>=<описание типа>; var <идентификатор переменной>:<идентификатор типа>; |
| иван 23 |
19.12.2009, 13:26
Сообщение
#11
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
милая Юлия, а можно еще каким то способом решить эту задачу? просто в этой ошибки одни за другой выдает( например, через Procedure?
|
| Julia |
21.12.2009, 2:42
Сообщение
#12
|
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель |
Боюсь, что если вы начнете описывать процедуру, ошибок только добавится.
Напишите полностью исправленный код программы, будем избавляться от ошибок. |
| иван 23 |
21.12.2009, 9:55
Сообщение
#13
|
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск |
дело в том, что с нас как бы спрашивают желательно именно через procedure, а с этим я не сталкивался еще ни разу
|
| Julia |
22.12.2009, 17:17
Сообщение
#14
|
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель |
Процедура - это подпрограмма, которая решает какую-то небольшую законченную задачу внутри основной. Применяется, когда некоторый набор действий необходимо выполнить несколько раз.
Функция - частный случай процедуры, всегда возвращает какое-то конкретное значение. По структуре процедуры и функции совпадают с основной программой, т.е. в них могут присутствовать все те же разделы. Отличаются первой строкой. Процедура PROCEDURE <список формальных параметров>; FUNCTION <список формальных параметров>; Формальные параметры - это некоторые шаблоны, которые получают свои значения из самой программы. Процедуры и функции могут быть использованы в программе любое количество раз. Вызываются по имени и в скобках указываются фактические значения параметров. Процедура может и не иметь параметров. Рассмотрим ваш пример: Program Mas; Type g: array [1..n] of integer; v: array [1..m] of integer; Var n,m,S1,S2:integer; Begin writeln('Введите n'); readln(n); writeln('Введите m'); readln(m); Randomize; For I := 1 to n do g[I] := Random(500); {Ввод массива повторяется несколько раз, поэтому можем описать процедуру ввода} For I := 1 to m do v[I] := Random(500); ... Эта часть прогаммы примет следующий вид: Program Mas; const nm=25; Type mas=array [1..nm] of integer; {опишем новый тип и определим две переменные этого типа} Var g,v:mas;n,m,S1,S2:integer; Procedure Vvod(var x:mas,n:byte); {слово var показывает, что x - изменяемая величина} begin For I := 1 to n do x[I] := Random(500); end;Begin Randomize; writeln('Введите n'); readln(n); Vvod(g,n); {вызываем процедуру} writeln('Введите m'); readln(m); vvod(v,m); ... Дальше попробуйте сами. |
![]() ![]() |
|
Текстовая версия | Сейчас: 19.4.2026, 12:59 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru