Паскаль нужно объяснить, как работает программа. Пошагово и с объяснением. Даны два очень длинных целых числа (возможные значения превышают диапазон значений longint). Сложите эти числа
Program kursayin_khndir_2;
Type arr = array [1..100] of integer;
var
s1, s2, s3: string;
n1, n2, n3, l1, l2, l3, i: byte;
c: string[1];
begin
writeln('Ներմուծել 1 թիվը ');
readln(s1);
writeln('Ներմուծել 2 թիվը ');
readln(s2);
l1 := length(s1);
l2 := length(s2);
if l1 > l2 then begin
s3 := s1; l3 := l1;
s1 := s2; l1 := l2;
s2 := s3; l2 := l3;
end;
s3 := ''; n3 := 0;
for i := l1 downto 1 do begin
val(s1[i], n1);
val(s2[l2], n2);
l2 := l2 - 1;
str((n1 + n2 + n3) mod 10, c);
s3 := c + s3;
if n1 + n2 + n3 > 9 then
n3 := 1
else n3 := 0;
end;
while n3 = 1 do begin
if l2 <> 0 then begin
val(s2[l2], n2);
l2 := l2 - 1;
str((n2 + n3) mod 10, c);
s3 := c + s3;
if n2 + n3 < 10 then
n3 := 0;
end
else begin
s3 := '1' + s3;
n3 := 0;
end;
end;
if l2 <> 0 then
s3 := copy(s2, 1, l2) + s3;
writeln('1 և 2 թվերի գումարը ');
writeln(s3);
end.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float a,b,c,p,s;
struct {
float ax,ay,bx,by,cx,cy;
} ABC;
cout<<" задайте координаты точек"<<endl;
cout<<" ax "<<" ay "<<" bx "<<" by "<<" cx "<<" cy";
cout<<endl;
cin>>ABC.ax>>ABC.ay>>ABC.bx>>ABC.by>>ABC.cx>>ABC.cy;
// вычисление длин сторон
a=sqrt(pow((ABC.bx-ABC.ax),2)+pow((ABC.by-ABC.ay),2));
b=sqrt(pow((ABC.cx-ABC.bx),2)+pow((ABC.cy-ABC.by),2));
c=sqrt(pow((ABC.cx-ABC.ax),2)+pow((ABC.cy-ABC.ay),2));
p=(a+b+c)/2;
// проверка, что можно составить треугольник
if (((p-a)>0) && ((p-b)>0) && ((p-c)>0))
cout<<"точки образуют треугольник"<<endl;
else cout<<"точки лежат на одной прямой"<<endl;
system("pause");
return(0);
}
var a:array[1..6] of integer;
var i,s: integer;
begin
i:=0;a[1]:=500;a[2]:=100;a[3]:=10;a[4]:=5;a[5]:=2;a[6]:=1;
writeln('Введите целое число,сумму денег:');
readln(s);
while s<>0 do
begin
if s>=a[1] then begin
s:=s-a[1]; i:=i+1; end;
if (s>=a[2]) and (s<a[1]) then begin s:=s-a[2]; i:=i+1; end;
if (s>=a[3]) and (s<a[2]) then begin s:=s-a[3]; i:=i+1; end;
if (s>=a[4]) and (s<a[3]) then begin s:=s-a[4]; i:=i+1; end;
if (s>=a[5]) and (s<a[4]) then begin s:=s-a[5]; i:=i+1; end;
if (s>=a[6]) and (s<a[5]) then begin s:=s-a[6]; i:=i+1; end;
end;
Writeln('Наименьшее число купюр =',i);
end.