Обяснение за вложени записи

Обяснете какво се случва в следните блокове код:

Блок 1:

type
type
  Adres = record
    Grad: string[20];
    Ulica: string[50];
    No: integer;
  end;
  uchenik = record
    ime:string[20];
    DomAdres: Adres;
    Godini: integer;
  end;
var
  n1, n2: uchenik;
begin
  ReadLn(n1.ime);
  ReadLn(n1.DomAdres.Grad);
  ReadLn(n1.DomAdres.Ulica);
  ReadLn(n1.DomAdres.No);

Блок 2:

var
  n1, n2: uchenik;
begin
  with n1 do
     ReadLn(ime, Godini);
  with n1.Adres do begin 	 
     ReadLn(Grad);
     ReadLn(Ulica);
     ReadLn(No);
  end;

Блок 3:

type
  uchenik=record
    ime:string[20];
    skok:array[1..3] of real;
  end;
var
  n1, n2: uchenik;
begin
  ReadLn(n1.ime);
  ReadLn(n1.skok[1]);
  ReadLn(n2.ime);
  ReadLn(n2.skok[1]);

Блок 4:

type
  uchenik=record
    ime: string[20];
    godini: integer;
    skok: array[1..3] of real;
  end;
var
  n: array [1..10] of uchenik;
begin
  ReadLn(n[1].ime);
  ReadLn(n[1].godini);
  ReadLn(n[1].skok[1]);
  ReadLn(n[1].skok[2]);
Публикувано в 10a с етикети . Постоянна връзка.

4 коментара по Обяснение за вложени записи

  1. zornitsa_mirela каза:
     var //декларираме променливите
    n1, n2: uchenik;//n1,n2 от тип ученик
    begin //започваме
    with n1 do //с първия ученик до започване да
    ReadLn(ime, Godini); //прочита името и годините
    with n1.Adres do begin //с първия ученик адреса до започване
    ReadLn(Grad); // да прочита град
    ReadLn(Ulica); //прочита улицата
    ReadLn(No); //прочита номера на улицата
    end; //край    

    -Mирела

  2. zornitsa_mirela каза:
     type // декларираме нов тип данни
    uchenik=record // за променливата учиник декларираме да е запис, който съдържа
    ime:string[20]; // име, което е текст до 20 символа
    skok:array[1..3] of real; // масив от числа от 1 до 3 , които са реални числа
    end; // край
    var // декларираме променливи
    n1, n2: uchenik; // n1, n2 са променливи от теп ученик
    begin // начало
    ReadLn(n1.ime); // от променливата n1 да прочете името
    ReadLn(n1.skok[1]); // от променливата n1 да прочете първия скок
    ReadLn(n2.ime); // от променливата n2 да прочете другото име
    ReadLn(n2.skok[1]); // от променливата n2 да прочете първия скок 

    – Зорница

  3. zornitsa_mirela каза:
     Program Zad_3;
    Type //нов тип
      Student=Record // ученици е запис
     First_name:string[15]; // Името е от тип низ , който съдържа до 15 символа
     Second_name:string[15];// Презимето е от тип низ ,който съдържа до 15 символа
     Last_name:string[15]; // Фамилията е от тип низ,който съдържа до 15 символа
     Egn:string[10];//Егн е от тип низ ,който съдържа до 10 символа
     Sr_uspeh:real; //Средния успех е от реален тип данни
     End;  //край
    Students=Array[1..30] of Student; //ученикът е масив,който съдържа елементи номерирани от 1 до 30 и всеки от елементите е от тип  ученик
    var //декларираме променлива
      Klas:Students; //клас от ученици
      n,i:integer;// n и i от целочислен тип
      begin //започваме
        Write('Broi uchenici:'); // въвеждаме броя ученици
        ReadLn(n); //прочита броя ученици
        foi i:=1 to n do  //зa 1 променя броя на учениците
        with Klas[i] do // от класа
    begin //започване
      Write('Ime:'); //написваме името
      ReadLn(First_name); // прочита първото име
      Write('Prezime:');  //написваме второто име
      ReadLn( Second_name); //прочита презимето
      Write('Familiq:');//написваме фамилията
      ReadLn(Last name); //прочита фамилията
      Write('Egn:');//написваме егн
      ReadLn(Egn); //прочита егн
      Write('Sr_uspeh:');//написваме средния успех
      ReadLn(Sr_uspeh); //написваме  средния успех
    End;//край
     for i:=1 to n do //за 1 променя броя учениците
     if klas [i].Sr_uspeh>=5.50 then // само на който успеха им е по-голям или равен от 5,50
     begin //започваме
       Write(klas[i].first_name,' '); //написваме на учениците от класа името,след което ще остави празно място
       Write(klas[i].second_name,' '); //написваме на учениците от класа презимето , след което ще остави празно място
       Write(klas[i].last_name,' ');//написваме на учениците от  класа  фамилията , след което ще остави празно място
       Write(klas[i].Egn,' ');      //написваме  на учениците от класа  егн ,след което ще остави празно място
       WriteLn(klas[i].Sr_uspeh:1:2);//написваме на учениците от класа средния успех
     end;// край 

    ;
    end; //край
    -Мирела

  4. zornitsa_mirela каза:

    var // декларираме променливи
    n1, n2: uchenik; // променливите n1, n2 да са от тип ученик

     begin // начало
      with n1 do // за променливата n1
         ReadLn(ime, Godini); // прочета полетата име и години
      with n1.Adres do begin  // за променливата адрес от n1 прочита
         ReadLn(Grad); // града, улицата и номера
         ReadLn(Ulica);
         ReadLn(No);
      end; // край 

    – Зорница

Вашият коментар