IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на запись
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской

Репутация: -  0  +


Зравствуйте, есть проблема не могу добиться результата в программе, точнее не могу понять как вывести максимальный и минимальный результат в таблице.
вот сам код:

{Составьте список группы спортсменов, участвовавших в соревнованиях по спортивной гимнастике,
включающей N человек. Для каждого гимнаста укажите фамилию, имя,
номер школы, класс, результаты по соревнованию. Осуществите поиск информации
о спортсменах, показавших лучший и худший результаты.}
program nomer4;
uses crt;
type
sport=record
sur:string;
name:string;
nomber:integer;
ass:byte;
res:integer;
end;
var
mas:array[1..100] of sport;
x,y:real;
n,i,max,min:integer;
procedure spisok(x:real);
begin
writeln('Самый лучший результат:');
writeln;
writeln;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
max:=0;
min:=0;
for i:=1 to n do
if mas[i].res > max then
max:=mas[i].res;
writeln(max);
begin
writeln(mas[i].sur:7,'|',mas[i].name:7,'|',mas[i].nomber:11,'|',mas[i].ass:5,'|',mas[i].res:9,'|');
end;
writeln('--------------------------------------------');
end;
BEGIN
clrscr;
writeln('Введите количество спортсменов');
readln(n);
for i:=1 to n do
begin
writeln('Введите фамилию');readln(mas[i].sur);
writeln('Введите имя');readln(mas[i].name);
writeln('Введите номер школы');readln(mas[i].nomber);
writeln('Введите класс');readln(mas[i].ass);
writeln('Введите результат');readln(mas[i].res);
writeln('___________________________________________________________________');
end;
clrscr;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
for i:=1 to n do
begin
writeln(mas[i].sur:7,'|',mas[i].name:7,'|',mas[i].nomber:11,'|',mas[i].ass:5,'|',mas[i].res:9,'|');
end;
writeln('-------------------------------------------');
writeln;
writeln;
writeln;
spisok(x);
end.


... ну надеюсь кто-нибудь поможет.

Сообщение отредактировано: Spaun -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  -1  +


program nomer4;
uses crt;
type
sport=record
sur:string;
name:string;
nomber:integer;
ass:byte;
res:integer;
end;
var
mas:array[1..100] of sport;
x,y:real;
maxI,minI,n,i,max,min:integer;
procedure spisok(x:real);
begin
writeln('Самый лучший результат:');
writeln;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
max:=0;
min:=mas[1].res;
for i:=1 to n do
begin
if mas[i].res > max then
begin
max:=mas[i].res;
maxI:=i;
end;
if mas[i].res < min then
begin
min:=mas[i].res;
minI:=i;
end;
end;
writeln(mas[maxI].sur:7,'|',mas[maxI].name:7,'|',mas[maxI].nomber:11,'|',mas[maxI].ass:5,'|',mas[maxI].res:9,'|');

writeln('--------------------------------------------');
writeln;
writeln('Самый худший результат:');
writeln;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');

writeln(mas[minI].sur:7,'|',mas[minI].name:7,'|',mas[minI].nomber:11,'|',mas[minI].ass:5,'|',mas[minI].res:9,'|');

end;
BEGIN
clrscr;
writeln('Введите количество спортсменов');
readln(n);
for i:=1 to n do
begin
writeln('Введите фамилию');readln(mas[i].sur);
writeln('Введите имя');readln(mas[i].name);
writeln('Введите номер школы');readln(mas[i].nomber);
writeln('Введите класс');readln(mas[i].ass);
writeln('Введите результат');readln(mas[i].res);
writeln('___________________________________________________________________');
end;
clrscr;
writeln('-------------------------------------------');
writeln('Фамилия|',' Имя |','Номер школы|','Класс|','Результат|');
writeln('-------------------------------------------');
for i:=1 to n do
begin
writeln(mas[i].sur:7,'|',mas[i].name:7,'|',mas[i].nomber:11,'|',mas[i].ass:5,'|',mas[i].res:9,'|');
end;
writeln('-------------------------------------------');
writeln;
spisok(x);
readln;
end.


Нужно было запоминать номер (i) самого лучшего (maxI) и самого худшего (minI) результата.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Alex J'Root, и зачем делать двойную работу?

Вот этого:
maxI := 1; minI := 1;
for i:=2 to n do begin
if mas[i].res > mas[maxI] then maxI:=i;
if mas[i].res < mas[minI] then minI:=i;
end;
не достаточно?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  -1  +


blink.gif

я думаю, что программа не надорвёться и при моем коде. yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
я думаю, что программа не надорвёться и при моем коде.
С тобой все ясно... dry.gif Вариант "Сдать и забыть". Когда тебе понадобится помощь, не сомневайся, ты получишь именно код, который "не надорвется", даже если можно сделать ГОРАЗДО проще...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  -1  +


Что ты привязался до одного цикла??? И если я тебя один раз попросил помочь сделать задачу - это не значит что можно кидаться такими фразами!!!

Тебе 34 года, мне намного меньше. Я изучаю Паскаль 1 год, я думаю ты намного больше.

Честно говоря, смотрел твой сайт на народе... и форум на юкозе. Думал предложить тебе всё это перенести на платный хостинг и купить домен, т.к. с бесплатного могут в любое время удалить. Но сейчас желание прапало mad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской

Репутация: -  -3  +


Извини, ошибся на 3 года.


--------------------
P.S. это лично моё мнение :)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Alex J'Root @ 8.06.2008 23:13) *

Что ты привязался до одного цикла??? И если я тебя один раз попросил помочь сделать задачу - это не значит что можно кидаться такими фразами!!!

Тебе 34 года, мне намного меньше. Я изучаю Паскаль 1 год, я думаю ты намного больше.
Странный ты какой-то...
С одной стороны жалуешься на недостаток опыта, а с другой - неадекватно реагируешь на советы, которые помогают тебе этого опыта набраться.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской

Репутация: -  -3  +


Не тот случай, чтобы набираться опыта!!!


--------------------
P.S. это лично моё мнение :)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.11.2020 3:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name