Показать сообщение отдельно
Старый 21.01.2014, 20:41   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от SProkhorenkov Посмотреть сообщение
Помогите написать алгоритм решения и Паскаль программу к задаче.Желательно с пояснениями.
Алгоритмами в смысле блок-схемами и прочим не занимаюсь, а программу - пожалуйста, легче легкого:
Код:
{Объявляем переменные:}
Var
 TF13:Array[1..22,1..5] of Byte;
 i,j,Max,Sum:Byte;
 b:boolean;
{Начинаем программу:}
Begin
{Запускаем генератор случайных чисел:}
 Randomize;
{Генерируем таблицу оценок в диапазоне от 2 до 5:}
 for i:=1 to 22 do
  for j:=1 to 5 do
   TF13[i,j]:=Random(4)+2;
{Выводим таблицу на экран в две колонки. Столбцы слева - порядковые номера студентов}
 for i:=1 to 11 do
  begin
   write(i:2,'     ');
   for j:=1 to 5 do write(TF13[i,j]:2);
   write((i+11):10,'     ');
   for j:=1 to 5 do write(TF13[i+11,j]:2);
   writeln;
  end;
 writeln;
{Ищем максимальную по студентам сумму баллов:}
 Max:=0;
 for i:=1 to 22 do
  begin
   Sum:=0;
   for j:=1 to 5 do Inc(Sum,TF13[i,j]);
   if Sum>Max then Max:=Sum;
  end;
{Выводим номера студентов, имеющих максимальную сумму баллов:}
 writeln('Students having maximal average mark (',Max/5:5:3,'):');
 for i:=1 to 22 do
  begin
   Sum:=0;
   for j:=1 to 5 do Inc(Sum,TF13[i,j]);
   if Sum=Max then write(i:3);
  end;
 writeln;
{Ищем студентов без двоек, и при нахождении выводим их номера на экран:}
 writeln('Students having no unsatisfactory marks:');
 for i:=1 to 22 do
  begin
   b:=true;
   for j:=1 to 5 do if TF13[i,j]=2 then b:=false;
   if b then write(i:3);
  end;
{Останавливаем программу:}
 readln
{Завершаем программу:}
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070