Паскаль.Задачи про записи и цыклы

Ответить
blizz90
Сообщения: 3
Зарегистрирован: 17 мар 2009, 13:58

Здраствуйте уважаемые программисты помогите, пожалуйста, решить:
1.задача по теме ЗАПИСИ
Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса.
2.МАССИВЫ
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.

[...Вынесено в отдельную тему...]

Заранее спасибо
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

2. Вот почти то, что тебе нужно, но только со столбцами. Я думаю, переделать не составит труда :)

Код: Выделить всё

uses crt;
var GJ:array[1..50,1..50] of integer;
m,n,max,buf,nom,kol:integer;
begin
clrscr;
writeln('Vvedite n-> ');
readln(kol);
for n:=1 to kol do
 begin
  clrscr;
  writeln('Stolbec # ',n);
  m:=0;
  repeat
   m:=m+1;
   write('Stroka ',m,' -> ');
   readln(GJ[m,n]);
  until m=kol;
 end;
clrscr;
write('Ishodnaia matrica:');
for m:=1 to kol do
 begin
  writeln;
  n:=0;
  repeat
   n:=n+1;
   write(GJ[m,n]:5);
  until n=kol;
 end;
readln;
for n:=1 to kol do
 begin
  m:=0;
  max:=GJ[1,n];
  repeat
   m:=m+1;
   if GJ[m,n]>=max then
    begin
     nom:=m;
     max:=GJ[m,n];
    end;
  until m=kol;
   buf:=GJ[n,n];
   GJ[n,n]:=max;
   GJ[nom,n]:=buf;
 end;
writeln;
write('Izmenennaia matrica:');
for m:=1 to kol do
 begin
  writeln;
  n:=0;
  repeat
   n:=n+1;
   write(GJ[m,n]:5);
  until n=kol;
 end;
readln;
end.
Нет религии выше истины
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Записи:

Код: Выделить всё

uses crt;
type
   ych=record
   fio:string;
   a:array[1..10] of 2..5;
   pred:array[1..10] of string;
   sr:real;
end;
   mas=array [1..10] of ych;
var
   s:mas;
   i,i_pred,kol,kol_pred:integer;
   bal_cl:real;
   c:byte;
   flag:boolean;
   vyb:char;
begin
 clrscr;
 write('Введите количество студентов: ');
 readln(kol);
 write('Введите количество предметов: ');
 readln(kol_pred);
 flag:=false;
 for i:=1 to kol do
  begin
   clrscr;
   write(' # ',i,'. Введите ФИО ученика: ');
   readln(s[i].fio);
   if flag=false then
    begin
     for i_pred:=1 to kol_pred do
      begin
       write('Введите название дисциплины ',i_pred,': ');
       readln(s[i].pred[i_pred]);
       write('Bведите оценку по этому предмету: ');
       readln(s[i].a[i_pred]);
      end;
     writeln('Запомнить список дисциплин? [y/n] ');
     readln(vyb);
     if (vyb='y') or (vyb='Y') then flag:=true;
    end
    else
     begin
      writeln('Вводите оценки по дисциплинам: ');
      for i_pred:=1 to kol_pred do
      begin
       s[i].pred[i_pred]:=s[i-1].pred[i_pred];
       write(s[i].pred[i_pred],': ');
       readln(s[i].a[i_pred]);
      end;
     end;
  end;
  bal_cl:=0;
  for i:=1 to kol do
   begin
    s[i].sr:=0;
    for i_pred:=1 to kol_pred do s[i].sr:=s[i].sr+s[i].a[i_pred];
    s[i].sr:=s[i].sr/kol_pred;
    bal_cl:=bal_cl+s[i].sr;
   end;
   bal_cl:=bal_cl/kol;
  clrscr;
  writeln ('СПИСОК СТУДЕНТОВ: ');
  for i:=1 to kol do
   begin
    clrscr;
    writeln;
    writeln(' # ',i,'. ',s[i].fio);
    writeln;
    writeln('**********ОЦЕНКИ************');
    for i_pred:=1 to kol_pred do
    writeln(s[i].pred[i_pred],' : ',s[i].a[i_pred]);
    writeln('****************************');
    writeln('Средний бал: ',s[i].sr:4:2);
    readln;
   end;
 clrscr;
 writeln('Средний балл по классу: ',bal_cl:5:2);
 writeln('1 - Вывести список отличников.');
 writeln('2 - Вывести список хорошистов.');
 writeln('3 - ВЫХОД.');
 writeln(' -> ');
 readln(c);
if (c<>1) and (c<>2) and (c<>3) then
 begin
  writeln('Nekorektnyi vybor!');
  readln;
  halt;
 end;
case c of
1:begin
writeln('ОТЛИЧНИКИ: ');
for i:=1 to kol+1 do if s[i].sr=5 then writeln(s[i].fio);
  end;
2:begin
writeln('ХОРОШИСТЫ: ');
for i:=1 to kol+1 do if (s[i].sr>=4) and (s[i].sr<5) then writeln(s[i].fio);
  end;
3:halt;
end;
readln;
end.
Нет религии выше истины
blizz90
Сообщения: 3
Зарегистрирован: 17 мар 2009, 13:58

Спасиба с солбцами я разберусь а то надо ведь чёта самому сделать :o
Ответить