![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
иван 23 |
![]()
Сообщение
#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. |
граф Монте-Кристо |
![]()
Сообщение
#2
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Зачем Вы делаете s=s+i? Ведь Вы добавляете к s не элемент, а его индекс. Пишите тогда уже s=s+g[i].
|
иван 23 |
![]()
Сообщение
#3
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
спасибо, так в этом и была моя ошибка?
|
граф Монте-Кристо |
![]()
Сообщение
#4
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Ну в этом коде вроде бы нету больше ошибок.
|
иван 23 |
![]()
Сообщение
#5
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
но если через тип описывть, то он пишет, что здесь:
g: array [1..n] of integer; v: array [1..m] of integer; нужно вместо : поставить =, а затем он пишет, что n m неизвестные идентификаторы |
иван 23 |
![]()
Сообщение
#6
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
а еще вопрос такой: а можно ли вместо типа например решить ее как Procedure? тогда и m n может описывать не придется?
|
граф Монте-Кристо |
![]()
Сообщение
#7
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Да,это упустил из виду. Естественно, пас ругается. Переменные n и m определены после того,как уже появились в тексте.
Думаю,что это не так уж и сложно(про процедуру). |
иван 23 |
![]()
Сообщение
#8
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
помогите пожалуйста определить эти переменные n и m заранее, а через процедуру я не разобрался как делать, так что приходится через тип пробовать
|
Julia |
![]()
Сообщение
#9
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
Объявите любые 2 константы (не m и n), как вы делали в других задачах. Или при описании массивов зафиксируйте их размер (он должен быть больше, чем предполагаемые значения m и n).
И замените слово type на var. |
Julia |
![]()
Сообщение
#10
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
Описание типов:
type <идентификатор типа>=<описание типа>; var <идентификатор переменной>:<идентификатор типа>; |
иван 23 |
![]()
Сообщение
#11
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
милая Юлия, а можно еще каким то способом решить эту задачу? просто в этой ошибки одни за другой выдает( например, через Procedure?
|
Julia |
![]()
Сообщение
#12
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
Боюсь, что если вы начнете описывать процедуру, ошибок только добавится.
Напишите полностью исправленный код программы, будем избавляться от ошибок. |
иван 23 |
![]()
Сообщение
#13
|
Школьник ![]() Группа: Продвинутые Сообщений: 32 Регистрация: 6.12.2009 Город: новосибирск ![]() |
дело в том, что с нас как бы спрашивают желательно именно через procedure, а с этим я не сталкивался еще ни разу
|
Julia |
![]()
Сообщение
#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); ... Дальше попробуйте сами. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 21:26 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru