Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2022, 03:10   #1
valentun11231
 
Регистрация: 17.11.2022
Сообщений: 4
По умолчанию PASCAL. Используя одномерные массивы, составить программу.

Здраствуйте у меня проблема с заданием на паскале,пару дней мучаюсь,не могу понять как сделать.Задание звучит так:
Используя одномерные массивы, составить программу – есть рост студентов в группе. Найти самый высокий рост. Значения элементов массива вводятся пользователем с клавиатуры.
Очень надеюсь на помощь.
valentun11231 вне форума Ответить с цитированием
Старый 17.11.2022, 06:58   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
program rost;

uses SysUtils;

var students: array of Byte; i, max: LongInt;

BEGIN
  Write('Введите количество студентов'); ReadLn(max); SetLength(students, max);
  Write('Введите рост, см: '); for i := Low(students) to High(students) do Read(students[i]);
  max := Low(students); for i := max + 1 to High(students) do if students[max] < students[i] then max := i;
  WriteLn('Самый высокий студент имеет рост ', students[max], ' и стоит в шеренге на ', max + 1, ' месте.'); ReadLn();
END.

Последний раз редактировалось macomics; 17.11.2022 в 11:55.
macomics вне форума Ответить с цитированием
Старый 17.11.2022, 11:47   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Вот студенты пошли длинные: для их роста уже integer не хватает. Разве что рост в пикометрах измерен... И динамический массив... В группе - всё население Земли ?
Код:
program rost;

uses SysUtils;
var students: array [1..50] of integer; i, nmax, himax: integer;

BEGIN
   himax := 0 ;
   imax := 0 ;
   Writeln ('Введите рост студентов. Окончание ввода = 0') ;
   for i := 1 to 50 do
   begin
        Readln (students[i]) ;
        if ((students[i] <= 0) then break
          else if students[i] > himax then
             begin
                 himax := students[i] ;
                 imax := i
             end;
     end ;   
   WriteLn('Самый  длинный стьюдень с нумером ', imax,  'имеет рост ', himax); ReadLn();
END.
Слишком вумное решение (динамический массив) может навлечь "пару" за "не сам сделал" .

Последний раз редактировалось digitalis; 17.11.2022 в 11:54.
digitalis вне форума Ответить с цитированием
Старый 17.11.2022, 11:53   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Точно. Для роста стоило использовать тип Byte. Хотя может найтись верзила выше 255 см, но он может один на 8 млрд.
macomics вне форума Ответить с цитированием
Старый 18.11.2022, 01:58   #5
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Код:
        if ((students[i] <= 0) then break
Что-то здесь не то .
Пётр Седов вне форума Ответить с цитированием
Старый 18.11.2022, 10:51   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Всего лишь скобка лишняя. Да и вообще они тут не нужны, это - Сишный стиль
Код:
if students[i] <= 0 then break
Давать код с маленькой ошибкой полезно для шевеления мозгой студенятам вмест тупого копипаста.

Последний раз редактировалось digitalis; 18.11.2022 в 10:57.
digitalis вне форума Ответить с цитированием
Старый 20.11.2022, 04:05   #7
valentun11231
 
Регистрация: 17.11.2022
Сообщений: 4
По умолчанию

Большое спасибо!!
Очень спасли!
valentun11231 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal.Используя процедуру sort_file ,составить программу сортировки текстового файла Артур Артурович Помощь студентам 3 13.01.2013 22:22
Составить программу на одномерные массивы и двумерные(матрицу) в Паскале. Элиза12345 Паскаль, Turbo Pascal, PascalABC.NET 0 10.12.2012 23:12
составить программу,используя оператор While / repeat и протабулировать функцию(Turbo Pascal) Dina 85 Помощь студентам 4 10.10.2012 17:18
составить программу использую циклы но не используя массивы Naruto_026 Помощь студентам 0 01.11.2011 19:18