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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2008, 18:08   #1
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию проблемы с поиском

Привет всем! Если у вас есть свободное время помогите пожалуйста с решением!
Я пытался сам решить но никак не выходит(((
Начало есть но с поиском проблемы…

Код:
program sp;
uses crt;
 type
   sport = record
    num:byte;
    name,strana:string[30];
    rez:real;
   end;
var
m:array[1..100] of sport;
i,j,k,l:integer;

procedure zZ;
begin
 write('vvedite koli4estvo u4astnikov sorevnovanii');
  readln(k);
   for i:=1 to k do
    with m[i] do
     begin
       write('vedite nomer u4astnika');
       readln(num);
       write('vvedite familiu');
       readln(name);
       write('vvedite stranu');
       readln(strana);
       write('pokazanii rezyltat');
       readln(rez);
     end;
   end;
Мне нужно вывести на экран 3 лучших участника по результатам!
надеюсь кто-нибудь поможет!
vIRTx вне форума Ответить с цитированием
Старый 08.06.2008, 18:37   #2
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

могу вывести только в порядке ухудшения…
vIRTx вне форума Ответить с цитированием
Старый 08.06.2008, 20:08   #3
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Вот полный код:
Код:
program sp;
uses crt;
type
 sport = record
  num:byte;
  name,strana:string[30];
  rez:real;
 end;
 var
 m: array[1..100] of sport;
 i,j,k,l:integer;
 u: sport;
begin
 write('vvedite koli4estvo u4astnikov sorevnovanii: ');
 readln(k);
 for i:=1 to k do
 with m[i] do
  begin
   write('vedite nomer u4astnika: ');
   readln(num);
   write('vvedite familiu: ');
   readln(name);
   write('vvedite stranu: ');
   readln(strana);
   write('pokazanii rezyltat: ');
   readln(rez);
 end;
 for i:= 1 to k-1 do
  for j:= 1 to k-i do
   begin
    if m[j].rez >= m[j+1].rez then
     begin
      u:= m[j];
      m[j]:= m[j+1];
      m[j+1]:= u;
     end;
   end;
 writeln('3 uchastnika s lucshimi rezultatami: ');
 j:= 3;
 for i:= k-2 to k do
  begin
   with m[i] do
    writeln(j,'mesto',num,'-ui nomer ', name,' iz ', strana, ' s rezultatom: ', rez);
   dec(j);
  end; 
 readln;
end.

Последний раз редактировалось -=<[Evklidd]>=-; 08.06.2008 в 20:27.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 08.06.2008, 20:28   #4
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

Огромное спасибо! Очень выручил! Я пытался решить у меня код был в 2 раза длиннее и с ошибками…
vIRTx вне форума Ответить с цитированием
Старый 09.06.2008, 10:45   #5
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

Как можно переделать чтобы в конце появилось меню:
нажмите 1 для просмотра данных спортсмена который занял первое место;
нажмите 2 для просмотра данных спортсмена который занял второе место;
нажмите 3 для просмотра данных спортсмена который занял третье место;

тут нужно использовать case ??
vIRTx вне форума Ответить с цитированием
Старый 09.06.2008, 11:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тут нужно использовать case ??
Вполне. После ввода в переменку числа проверяй его в Case
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2008, 11:22   #7
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

можешь показать как это записать?
я запутался ппц(((
vIRTx вне форума Ответить с цитированием
Старый 09.06.2008, 11:38   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу. Читай тут:http://programmersforum.ru/showthrea...rd+fourth+0%27

Это получше чем просто цифрами вводить...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2008, 12:03   #9
vIRTx
 
Регистрация: 08.06.2008
Сообщений: 8
По умолчанию

Цитата:
Могу. Читай тут:http://programmersforum.ru/showthrea...rd+fourth+0%27
Это не подходит, спасибо за помощь
vIRTx вне форума Ответить с цитированием
Старый 09.06.2008, 12:08   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
var mst: byte;
...
repeat
  write('1 mest - 1       2 mesto - 2       3 mesto - 3      exit - 0    ');
  readln(mst);
  with m[k+1-mst] do
  writeln(mst,'mesto',num,'-ui nomer ', name,' iz ', strana, ' s rezultatom: ', rez);
until mst=0 //выход по нажатию нуля
eoln вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с поиском Zeraim Microsoft Office Access 2 04.06.2008 05:42
Помогите с поиском EugenZyr Помощь студентам 1 07.05.2008 14:02
Помогите с поиском 1234 БД в Delphi 5 01.04.2008 11:33
Проблемка с поиском Glyuk24 Помощь студентам 6 24.11.2007 22:31
Помогите с поиском Egych PHP 1 09.08.2007 08:00