1
|
2
|
3
|
4
|
2
|
1
|
4
|
3
|
3
|
4
|
1
|
2
|
4
|
3
|
2
|
1
|
Program f13_d1;
Label 1,2;
Const n=4;
Var I,j,s,s1:integer: a: array[1..n,1..n] of integer;
Begin
For i:=1 to n do
For j:=1 to n do
Begin
Write(‘’,I,j); read( a[I,j]);
End;
Writeln(‘’);
For i:=1 to n do
Begin
For j:=1 to n do write(a[I,j]:3);
Writeln
End;
S1:=0;
For i:=1 to n do s1:=s1+I;
For i:=1 to n do
Begin
S:=0;
For j:=1 to n do s:=s+a[I,j];
If s<>s1 then goto 1
End;
For i:=1 to n do
Begin
S:=0;
For j:=1 to n do s:=s+a[j,i];
If s <> s1 then goto 1
End;
Write(‘латын квадрат’);
Goto 2;
1: write(‘’);
2: end.
№3. Меретой. Ғасыр мерейтойы деп атақты адамдардың туылған күнінен бастап 100 немесе 200 жыл өтуін айтамыз. Қалада атақты бір ақынның ғасырлық мерейтойын тойламақшы. Осыған орай ұйымдастырушылар қала орталығында үлкен табло іліп қоюды дұрыс деп тапты. Бұл таблоның қызметі мерейтойға дейін неше күн қалғаны көрсету.
Тапсырма: осы таблоның жұмыс істеуін қамтамасыз ететін, ақынның туылған күні мен ағымдағы мерзімге қарап мерейтойға неше күн қалғанын анықтайтын программа жазу керек.
Ескерту: сіз жазған программа таблоның 1999-2099 жылдар аралығында дұрыс жұмыс жасауын қаматамасыз ету керек.
Кіру файылындағы мәліметтің форматы: кіру файлы екі қатардан тұрады. Бірініші қатарда- ақынның туылған күні мына форматта :кк:аа:жжжж; екінші қатарда , дәл осы форматтағыдай ағымдағы мерзім берілген.
Шығу файылындағы мәліметтің форматы: сіз жазған программа шығу файлына мерейтойға қалған күндердің санын, егер мерейтой өту үстінде болса немесе өтіп кеткен болса «тойлануда» деген жауап шығару керек.
Есептің алгоритмдік шешуі: бұл есепте берілген ақынның туылған күні айы, жылы мен ағымдағы күн, ай, жыл айырмашылығын есепке аламыз. Одан төмендегі шарттар туындайды:
Kyn2-kyn 1<=0
Ai2-ai1<=0
Gil2 mod 4=0 болса, онда ақпан 29-ына бітеді. Егер gil2-gil1 mod 10=9 онда, мерейтойға әлі жылға жуық уақыт бар болып, мына шарт арқылы тексереміз. Gil2 mod 4=3 then b[2]:=29;
Program mereitoi;
Uses crt;
Label 1;
Const b: array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
Var s,r,m: string;
Q,I,j,n,k,,l,p,gil2,kyn1,kyn2,ail,ai2: integer;
Begin
Clrscr; assign(input,”input.in”)
Reset(input);
Readln(s); readln(r);
Close(input);
Assign(output,”output.out”);
Rewrite(output);
K:=pos(“.”,s); m:=copy(s,l,k-1); delete(s,1,k);
Val(m,kyn1,q);k:=post(“.”,s); m:=copy(s,l,k-1);
Delete(s,l,k); val(m,ail,q);val(s,gil1,q);
K:=pos(“.”,r): m:=copy(r,l,k-1);delete(r,l,k);
Val(m,kyn2,q);k:=pos(“.”,r); m:=cope(r-1,k-1);
Delete(r,l,k);val(m,ai2,q);
Var(r,gil2,q);p:=gil2-gil1;
Q:=p mod 10; p=0;
If q=9 then begin
If (gil2 mod 4=3) or ((ai2<3) and (gil2 mod 4=0)) then b[2]:=29;
K:b[ai2]-kyn2;
For i:=ai2+1 to 12 do
P:=p+b[i];
For i:=1 to ail-1 do
P:= p+b[i]; p:=p+kyn1+k;
Goto 1; end;
If (ai1<=ai2) and (kyn2>= kyn1) then begin writeln(“toilanyda”); exit; end;
If (ai1<=ai2) and (kyn1>= kyn2) then begin p:=kyn1-kyn2; goto 1; end;
P:=gil2 mod 4;
If p=0 then b[2]:=29;
Q:=ai1-ai2; k:=b[ai2]- kyn2;
If q=1 then begin p:=k+kyn1; goto 1; end;
Q:=0;
For i:=ai2+1 to ai1-1 do
Q:=q+b[i];p:=k+q+kyn1;
L:writeln(p);
Close(output);
End.
Достарыңызбен бөлісу: |