Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 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
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблема должна решиться быстрее, если ознакомиться с подобными темами

Массивы. Паскаль
Массивы. Паскаль
Массивы, Паскаль
Паскаль. Задачи на массивы

Старый 12.06.2012, 16:35   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,357
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Натуличка Посмотреть сообщение
Т.Е. если ввожу 20 ячеек, то мин=1 а мах=20?
Нет. Если минимальный элемент расположен в 17-й ячейке, а максимальный - в 3-й, то Imin=17, а Imax=3.
Я тут другого не понимаю - что за дебильная формулировка такая? Обычно требуется ввести только сам массив, а уж дело программы найти минимальный и максимальный элементы, их номера, а затем проделать требуемые манипуляции: перестановки, перезаписи и т.п. Вот нафига заранее вводить избыточную информацию?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 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)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,357
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Дорогая Натуличка, мой Вам совет - установить на компьютер какой-либо пакет языка Паскаль, и любые программы запускать и отлаживать на компьютере, а не в тетрадке. По крайней мере, освоите синтаксис языка. Потому что любой транслятор, увидя такие перлы:
Цитата:
var a, array [1..20] of integer;
i,n,max,min of integer;
разразится матерной тирадой.
На всякий случай - правильно так:
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.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 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
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:07.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.