27.05.2008, 11:31
общий
это ответ
Здравствуйте, Шичкина, Анна, Сергеевна!
Решение задачи в приложениии.
Использовал массив записей и форматированный вывод текста.
Текст вводил транслитом, чтобы удобнее копировать, замените на русский.
Отдельные моменты программы с комментариями.
Приложение:
uses crt;type Tolimp=record {тип запись с полями} name:string[20]; gold:byte;{кол. золотых} silv:byte; {кол. серебряных} bron:byte; {кол. бронзовых} summ:byte; {всего медалей} reit:word; {всего очков} end;var sp:array[1..30]of Tolimp; {массив записей, список стран и их результатов} n,i,j:integer; x:Tolimp; {переменная типа запись для сортировки}beginclrscr;write(‘Kolichestvo stran:‘);readln(n);for i:=1 to n do begin write(‘Strana: ‘);readln(sp[i].name); write(‘Zoloto: ‘);readln(sp[i].gold); write(‘Serebro: ‘);readln(sp[i].silv); write(‘Bronza: ‘);readln(sp[i].bron); sp[i].summ:=sp[i].gold+sp[i].silv+sp[i].bron; sp[i].reit:=sp[i].gold*7+sp[i].silv*6+sp[i].bron*5; end;clrscr; {очищаем экран}writeln(‘Itogi Olimpijskih igr‘);writeln;For i:=1 to n do begin write(sp[i].name);{вводим название страны} gotoXY(10,i+2); {устанавливаем курсор в 10-ю позицию строки} write(sp[i].gold:4,sp[i].silv:4,sp[i].bron:4); {вводим все остальное с выделением 4-х позиций под число} writeln; end;readln;{читаем}{сортировка обменом (метод "пузырька") по убыванию рейтинга }for i:=1 to n-1 do for j:=1 to n-1 doif sp[j].reit<sp[j+1].reit then begin x:=sp[j]; sp[j]:=sp[j+1]; sp[j+1]:=x; end;clrscr; {очищаем экран}{выводим 10 пробелов, текст}writeln(‘ ‘:10,‘Itogi letnej Olimpiady v Pekine, 2008g.‘);writeln; {пустая строка}{выводим заголовки колонок}write(‘Strana‘:10,‘Zoloto‘:10,‘Serebro‘:10,‘Bronza‘:10,‘Vsego‘:8,‘Ockov‘:10);writeln; {пустая строка}for i:=1 to n do begin write(i:2,‘ ‘,sp[i].name);{номер,пробел,страна} gotoXY(10,i+3); {курсор в позицию 10 каждой стороки} {выводим все остальное} write(sp[i].gold:8,sp[i].silv:10,sp[i].bron:10,sp[i].summ:10,sp[i].reit:10); writeln; end;readlnend.