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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2020, 18:19   #1
G.R.Y.
Новичок
Джуниор
 
Регистрация: 12.02.2020
Сообщений: 1
По умолчанию Вывод имени исходя из полученных данных в двух одномерных массивах

Всем привет, есть такая задачка: активистка группы Маша занялась организацией дня рождения своей подруги Даши. Для этого она обошла своих сокурсников с ин-формацией о будущем торжестве и предложением сдать деньги на пода-рок (кто сколько даст). В мероприятии пожелали участвовать 6 человек. В результате получился список вида: имя – сумма.
Определить общую сумму, собранную на подарок, а также имена тех, кто сдал самое большое и самое малое количество денег.

Запнулся на выводе имен девушек, сдавшие минимум и максимум деняк, если вывести саму сумму без проблем, то с именами проблемка

Код прилагаю:

Код:
const n: array [1..6] of string = ('Lena','Liza','Katya','Ira','Olya', 'Lyba');
 sz = 6;

var
m: array [1..sz] of integer;
i,sum,max,min: integer;
nmin, nmax: string;

begin
for i:=1 to sz do
m[i]:=random(100);
for i:=1 to sz do
writeln(n[i], ' ', m[i], ' ');
writeln;

sum:=0;
for i:=1 to sz do
sum:=sum+m[i];
writeln('Vsego deneg sobrano: ', sum);

max:=m[1];
min:=m[1];
for i:=1 to sz do begin
if m[i]>max then max:=m[i];
if m[i]<min then min:=m[i];
end;
if m[i]=max then nmax:=n[i];
writeln('maximum sdala ',nmax, ' na summu: ', max);
if m[i]=min then nmin:=n[i];
writeln('menshe vseh sdala ',nmin, ' na sumu: ', min);
end.
G.R.Y. вне форума Ответить с цитированием
Старый 12.02.2020, 21:24   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

Код:
const name: array [1..6] of string = ('Lena','Liza','Katya','Ira','Olya', 'Lyba');
......................................
var i,sum,max,min,i_mx,i_mn: integer;
...................................
max := m[1];
min := m[1];
i_mx := 1 ;
i_mn := 1 ;
for i:=2 to sz do
begin
  if m[i]>max then 
    begin max:=m[i]; i_mx := i end ;
  if m[i]<min  then
    begin min:=m[i];  i_mn := i end ;
end;
writeln('maximum sdala ',name[i_mx], ' na summu: ', max);
if m[i]=min then nmin:=n[i];
writeln('menshe vseh sdala ',name[i_mn], ' na sumu: ', min);
Не надо экономить пальцы, имена переменных д.быть осмысленными. n -> name - и всё понятно.

Последний раз редактировалось digitalis; 12.02.2020 в 21:30.
digitalis вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считывание информации с видео , обработка и вывод поверх своей на основе данных полученных при считывании. NikolayZzz Помощь студентам 1 10.03.2017 08:40
Pascal ABC . Циклические перестановки в одномерных массивах lonis Помощь студентам 2 18.07.2015 17:47
вывод в див имен из бд и при нажатии вывод в отдельный див дополнительной информации об этом имени / PHP и базы данных looni123 JavaScript, Ajax 3 03.04.2014 21:26
немного о одномерных массивах Алекс К. Помощь студентам 2 10.03.2009 19:38