|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2021, 17:04 | #1 |
Новичок
Джуниор
Регистрация: 23.01.2021
Сообщений: 1
|
задача на одномерный массив
здравствуйте уважаемые программисты!
помогите пожалуйста написать код к задачи условие :Имеются сведения о количестве проданных билетов в 17-ти вагонах поезда. Найти наименее загруженный вагон, учитывая, что количество мест в вагоне зависит от типа вагона: в мягком и купейном вагонах — по 36 мест, а в плацкартном — 46 мест. нужно создать 3 одномерных массива(количество проданных билетов, количество мест в зависимости от типа вагона и третий массив для вычисления разницы между первыми 2-мя массивами) также при заполнении массива сделать проверку, чтобы кол-во проданных билетов не превышало кол-во мест Нужно написать код с использованием данных процедур: Заполнение массива Вывод массива Поиск максимума в 3 массиве Это всё,что сделала сама const n=17; type massiv= array[1..n] of integer; var Place,ticket,difference:massiv; max,m:integer; procedure zapol(m1:integer;var B:massiv); var i,key:integer; flag:boolean; begin for i:=1 to m1 do B[i]:= random(2) * 10 + 36; readln(key); flag:=TRUE; i:=1; While (i<=m1) and flag do begin if key<=B[i] then flag:=FALSE else i:=i+1; if flag then writeln ('Введите занаво количество проданных билетов ') else writeln ('Совпадение с элементом номер = ', i); readln(B[i]); end; end; procedure vivod(m1:integer;var B:massiv); var i:integer; begin for i:=1 to m1 do write(B[i]:5); writeln; end; begin repeat writeln('Введите количество вагонов'); readln(m); until(m>0) and(m<=17); writeln('Введите количество проданных билетов'); zapol(m,ticket); vivod(m,ticket); end. застряла на проверки в заполнении массива,не могу сообразить как это оформить ПОЖАЛУЙСТА ,помогите!буду рада любой помощи! |
23.01.2021, 22:04 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Сложно разбираться в таком коде, но используя его за основу и изменив алгоритм решил что-то изобразить.
Пользователь вводит число вагонов не более 17. Остальные вагоны получают тип -1 - без мест. Функция случайным образом назначает тип вагона (число посадочных мест). Генерируется число 0 <= N < 100. Если N меньше 50, то 46 мест, а иначе - 36. Эта же функция подсчитывает общее число посадочных мест в поезде. Пользователь вводит число проданных билетов, но не больше числа посадочных мест. Следующая процедура, для каждого билета, генерирует номер вагона. При этом проверяется оставшееся число мест. Если в вагоне есть свободные места, то -1, а иначе вновь генерируем номер вагона. Это не столь эффективно (повторная генерация), но это простое решение. После этого в массиве остаются только свободные места. Необходимо найти номер вагона с максимальным числом свободных мест. Берёшь первый вагон за эталон. Далее просматриваешь по всем вагонам. Если в текущем вагоне больше свободных мест, то обновляешь переменные, которые отвечают за номер вагона и число свободных мест. Код:
1. Для форматирования кода следует вставить код в форму 2. Выделить код и нажать кнопку [CODE], которая находится над формой ввода. PSS: Так думаю, что этого достаточно для переделывания кода под свои нужды, так как в предложенном варианте массивов меньше. ticket и delta (difference в оригинале) не использованы.
Как-то так, ...
Последний раз редактировалось ViktorR; 23.01.2021 в 22:51. Причина: Устранил ошибку в описании параметров процедуры procedure setTicket(n: integer; var mas: massiv); |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан массив A размером 3*3. Составить программу, записывающие положительные элементы этого массива A в одномерный массив B, а отрицательные - в одномерный массив C | SkaNi | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 02.06.2017 08:07 |
Задача на одномерный массив. | MrRifleman | Общие вопросы C/C++ | 1 | 24.03.2012 17:04 |
Задача на одномерный массив | kot__93 | Помощь студентам | 1 | 23.11.2010 23:18 |
Задача на одномерный массив | kot__93 | Общие вопросы C/C++ | 0 | 23.11.2010 22:15 |