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

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

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

 
 Ответить  Открыть новую тему 
> Задача на запись
Spaun
сообщение 7.06.2008 17:05
Сообщение #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 - 7.06.2008 19:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Alex J'Root
сообщение 8.06.2008 2:00
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.06.2008 12:37
Сообщение #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;
не достаточно?
 К началу страницы 
+ Ответить 
Alex J'Root
сообщение 8.06.2008 15:51
Сообщение #4


Новичок
*

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

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


blink.gif

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


Гость






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


Новичок
*

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

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


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

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

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


Новичок
*

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

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


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


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


Гуру
*****

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

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


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

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

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


Новичок
*

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

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


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


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

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

 



- Текстовая версия 19.06.2025 19:35
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"