12.06.2012, 16:00 | #1 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль, массивы, вставка
что делать? нужно вводить i, n, max, min, i max. i min. max и min я сама определяю. а что делать с i max. i min.? это же ячейки в которых расположены элементы, их я тоже определяю сама? Т.Е. если ввожу 20 ячеек, то мин=1 а мах=20? |
12.06.2012, 16:00 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблема должна решиться быстрее, если ознакомиться с подобными темами Массивы. Паскаль Массивы. Паскаль Массивы, Паскаль Паскаль. Задачи на массивы |
12.06.2012, 16:35 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Нет. Если минимальный элемент расположен в 17-й ячейке, а максимальный - в 3-й, то Imin=17, а Imax=3.
Я тут другого не понимаю - что за дебильная формулировка такая? Обычно требуется ввести только сам массив, а уж дело программы найти минимальный и максимальный элементы, их номера, а затем проделать требуемые манипуляции: перестановки, перезаписи и т.п. Вот нафига заранее вводить избыточную информацию? |
12.06.2012, 17:14 | #3 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
так не я прошу, а требует преподаватель. но сколько я понаходила примеров и подобных задач я недолжна вводить ячейки, а только задавать элементы. вообщем моя задача зависла. вот какой решение задачи вижу я
var a, array [1..20] of integer; i,n,max,min of integer; begin writeln ('ввод кол-во эл массива'); readln (n); writeln ('ввод эл массива'); for i:=1 to n do readln (a [i]); max:= a [1] min:= a [1] for i:=1 to n do if a[i]> min then min:=a[i]; ДАЛЬШЕ Я ЗАПУТАЛАСЬ!!!!!!!!! |
12.06.2012, 17:42 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Дорогая Натуличка, мой Вам совет - установить на компьютер какой-либо пакет языка Паскаль, и любые программы запускать и отлаживать на компьютере, а не в тетрадке. По крайней мере, освоите синтаксис языка. Потому что любой транслятор, увидя такие перлы:
Цитата:
На всякий случай - правильно так: var a: array [1..20] of integer; i,n,max,min: integer; Теперь по программе. Судя по всему, Вы решили пойти обычным путем, без ввода лишней информации. И правильно, потому что знаете, как выглядит задача, если исходить из "требований преподавателя"? А примерно так: Даны три числа: 5, 17, и 41. Найти максимальное, равное 41, стоящее на третьей позиции. Полный бред. Так что если Вас устроит обычный алгоритм ввода и обработки массива, то это так: Код:
const Nmax=100; var a: array [1..Nmax] of integer; i,n,max,min,Imin,Imax: integer; begin writeln ('ввод кол-во эл массива'); readln (n); writeln ('ввод эл массива'); for i:=1 to n do readln (a [i]); writeln; for i:=1 to n do write(a[i]:4); writeln; writeln; max:= a[1]; min:= a[1]; Imin:=1; Imax:=1; for i:=2 to n do begin if a[i]<min then begin min:=a[i]; Imin:=i; end; if a[i]>max then begin max:=a[i]; Imax:=i; end; end; a[Imin]:=a[Imax]; for i:=1 to n do write(a[i]:4); readln end. |
|
12.06.2012, 18:05 | #5 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо за совет, у меня стоит одна программа, но не показывает результат. на синтаксис я пока не обращала внимание, так как главное было понять, а это я потом разберу.
во всяком случае спасибо за помощь и советы) |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|