субота, 3 лютого 2018 р.

Комбінований тип

Комбінований тип

1. Задано список з 30 учнів, для кожного вказані такі дані: прізвище, ім’я, вага, зріст, адреса (record з назви вулиці, номерів будинку та квартири)  та  10 оцінок.  Знайти
            а) середню вагу учнів;
            б) максимальний зріст учнів;
            в) прізвище та імя учня з максимальним зростом;
г) кількість учнів класу з імям Андрій;
д) прізвища та імена учнів, прізвища яких починаються на А.

program pr1;
type Pupilrecord
                                  Surname, Name: string[20];
                                   Vaga:integer;
   Zrist: real;
   Adress:record
                  Street:string[15];
                  House, flat:integer
                end;
                                   Marks: array [1..10of 1..12;
                        end;
var klass: array[1..30] of Pupil;
      I,j:integer;
Begin

Вводимо дані }
  for i := 1 to 30 do
  begin
     writeln('Введіть прізвище');
     readln(Klass[i].Surname);
     writeln('Введіть імя');
     readln(Klass[i].Name);
     writeln('Введіть вагу');
     readln(Klass[i].Vaga);
     writeln('Введіть зріст');
     readln(Klass[i].Zrist);
     writeln('Введіть адресу');
     readln(Klass[i].Adress.Street);
     readln(Klass[i].Adress.House, Klass[i].Adress.Flat);
     for j:=to 10 do
      begin
      writeln('Введіть оцінку');
           readln(Klass[i].Marks[j]);
     end;
  end;

{Використаємо оператор приєднання для вводу }
      for i:=to 30 do  
          with klass[i] of
               begin
                    readln(Surname);
                    readln(Name);
                      readln(Vaga, Zrist);
                    readln(Adress.Street);
                      readln(Adress.House, Adress.Flat);
                    for j:=to 10 do  readln(Marks[j]);
               end;

{ а) Знайти середню вагу школярів }
  SerVaga := 0;     
  for i := 1 to 30 do
    SerVaga:= SerVaga+Klass[i].Vaga;
SerVaga:= SerVaga /30;
writeln(SerVaga);

{ б) Знайти максимальний зріст }
  MaxZrist := 0;          {Описати змінну MaxZrist }
  for i := 1 to 30 do
     if Klass[i].Zrist> MaxZrist then MaxZrist := Klass[i].Zrist;
  writeln(MaxZrist);

{ г) Знайти кількість щколярів на ім'я Андрій }
  NameCount := 0;
  for i := 1 to 30 do
     if Klass[i].Name = 'Андрійthen NameCount:= NameCount+1;
  writeln(NameCount);

{ д) Вивести прізвища та імена школярів, у яких прізвище починається на літеру ‘А’ }
  for i := 1 to 30 do
      if Klass[i].SurName[1] =’A then writeln(Klass[i].Surname ,' ',Klass[i].Name);
    
-------------------------------------------------------------------------------------------------------------------
Продовжуємо цю задачу

{ Знайти  кількість щколярів, у яких середня оцінка не менша 8 і не більша 10}
Count := 0;
for i := 1 to 30 do
begin
    MarkSum := 0;
    for j := 1 to 10 do
        MarkSum:=MarkSum+Klass[i].Marks[j];          { inc(MarkSum,Klass[i].Marks[j]) }
    AvgMark := MarkSum/10;
    if (AvgMark >= 8and (AvgMark <= 10then
        Inc(Count);
  end;
  writeln(Count);

{ Вивести прізвища та імена школярів, у яких найменша оцінка 10 }
  for i := 1 to 30 do
  begin
    MinMark := 13;
    for j := 1 to 10 do
        if Klass[i].Marks[j] < MinMark then MinMark := Klass[i].Marks[j];
    if MinMark = 10 then
        writeln(Klass[i].Surname ,' ',Klass[i].Name);
  end;

end.    {Кінець програми}

Д/з №1

  1. Знайти кількість учнів з вагою більше середньої.
  2. Вивести прізвища та імена учнів, прізвища яких починаються на літери Бо.
  3. Знайти кількість учнів, які проживають по вулицях Петлюри та Садова.
  4. Вивести прізвища учнів, які проживають у будинках  та квартирах з парними номерами

Д/з №2 (виконати ті завдання, що не встигли на уроці)
Знайти
  1. Середнє арифметичне значення оцінок кожного учня.
  2. Максимальну оцінку кожного учня.
  3. Середнє арифметичне оцінок по кожному предмету.
  4. Максимальну оцінку по кожному предмету.
  5. Вивести прізвища та імена учнів, у яких всі оцінки не менші 10 балів.
  6. Вивести прізвища учнів, які мають оцінки не нижче 8 балів та прізвища яких починаються з літер Б або В.
  7. обчислити середній бал класу і вивести список учнів, які мають середній бал вищий  за середній бал класу;
  8. Вивести дані про учня, який найкраще вчиться.
  9. Вивести дані учня з імям Андрій, який найкраще вчиться.


Немає коментарів:

Дописати коментар