rezolvarea problemelor Pascal


Rezolvarea problemelor scrise în Delphi - aplicatii consola. Când scrieți soluții de cod în Turbo Pascal sau mediul ABC Pascal, următoarea linie:

utilizări
SysUtils;






înlocuiește: utilizează CRT;
Din moment ce aplicatii consola „nu este compatibil“ cu limba română, toate posturile din programele transliterate.

algoritmi liniare
Sarcina 1.
Scrieți un program pentru a introduce trei numere aleatoare X, Y și Z de la tastatură. În cazul în care X este mai mare decât Z, apoi afișa cantitatea de X și Y, sunt altfel afișa valoarea Z.
soluţie:
Programul Project1;

utilizări
SysUtils;
var
x, y, z, rez: real;
începe

a scrie ( 'Wwedi X:'); readln (x);
write ( 'Wwedi Y:'); readln (y);
scrie ( 'Wwedi Z'); readln (z);

dacă x> z apoi rez: = x + y rez altfel: = z;

writeln (rez: 0: 2);
readln;
end.

Problema 2.
Am scrie programul cu tastatura trei numere arbitrare X, Y, Z. Programul este de a găsi cel mai mic număr introdus, și afișa.
soluţie:

Sarcina 3.
Lungimea porțiunii de teren dreptunghiular este de metri X, iar lățimea este egală cu Y m. Scrieti un program pentru calcularea numărului de plăci pe o porțiune predeterminată a gardului, în cazul în care lățimea de bord este de 10 centimetri.
soluţie:

Probleme cu tsiklamiZadacha 1.
Periodicitate lunară oficială ia o mită în valoare de X ruble. Cantitatea X instabilă și variază de la 0 la 150.000 de ruble. BMW 3 care vrea să cumpere de la mită oficiale în valoare de 1,7 milioane de ruble. Scrieti un program care va calcula cât de multe luni, acesta va lua un funcționar pentru a colecta suma necesară.
soluţie:

Programul Project1;

utilizări
SysUtils;
var
x: longint;
mes: integer;
începe
mes: = 0;
x: = 0;
egală sau mai mare 1700000>
repeta

randomiza;
x: = x + aleatoare (150.000);
writeln (x);

mes: = mes + 1;
până x> = 1700000;

writeln ( 'Mesjac =', mes);






readln;
end.

Problema 2. (Exemplul 9 pentru clasa GIA).
Scrieți un program care calculează produsul a secvenței divizibil cu 5. Programul are un număr întreg, numărul de numărul introdus nu este cunoscut, secvența de numere care se termină numărul 0 (0 - un semn al sfârșitului de intrare nu este inclusă în secvența).
Numărul de numere care nu depășește 1000. Numărul introdus al modulului nu depășește 30.000.
Programul ar trebui să afișeze un singur număr: produsul secvenței divizibile cu 5.

Soluție: Programul LS1;

utilizări
SysUtils;
var
x, z: integer; <Переменные для ввода значений x и вычисления произведения z>
n. întreg;
Eticheta L1;
începe

z: = 1;

pentru n: = 1 până la 1000 do
începe

L1: write ( 'Vvedi X:'); readln (x);

if (x 30000) atunci
începe
writeln ( 'Eroare de intrare!');
Goto L1;
se încheie;

în cazul în care x = 0, apoi rupe altceva

dacă frac (x / 5) = 0, atunci z: = z * x;
se încheie;

dacă z = 1, atunci z: = 0;
writeln ( 'Rezultat =', z);
readln;
end.
Un exemplu de program de execuție.

Programul Project1;

utilizări
SysUtils;
var
x, xmin, xmax: integer;
n, rez: integer;
Eticheta L1;
începe
Write ( 'Wedi X:'); Readln (x);
xmin: = x; xmax: = x;
pentru n: = 1 până la 1000 do
începe
L1: scrie ( 'Wedi X:'); Readln (x);
dacă abs (x)> 3000 atunci
începe
Writeln ( 'Eroare de intrare!');
Goto L1;
se încheie;
dacă x = 0 apoi pauza;
dacă x xmax apoi xmax: = x;
se încheie;
rez: = xmax - xmin;
Writeln ( '= Rezultat', rez);
readln;
end.


Sarcina 4.
Scrieti un program pentru a converti numere din binar în zecimal.
Decizie. În această aplicație vom introduce un număr binar ca un șir de caractere, apoi implementați linie cu un avans predeterminată (pentru a procesa înregistrarea cu biții cei mai puțin semnificativi) și mai departe, în prezența unui „1“ din rândul de calcul proizvedom corespunzător.

Linear (una unidimensionale).
Sarcina 1.
Specificat matrice aleatoare de numere întregi, a căror valoare, modulo nu depășește 300 (-300. 300). Numărul de intrări este egal cu 10. Găsiți numerele maxime și minime în matrice și afișare.
Decizie.

lesson3 programului;

utilizări
SysUtils;
var
ar: array [1..10] din întreg;
min, max: întreg;
z: integer;
x: integer;
începe
randomiza;
pentru z: = 1 până la 10 do
începe

x: = random (600);

dacă x> 300 x: = (x * -1) + 300;
ar [z]: = x;
writeln (z, '=', ar [z]);
se încheie;

min: = ar [1]; max: = ar [1];

pentru z: = 2 până la 10 do
începe
dacă min> ar [z] atunci min: = ar [z];
dacă execuția programului max EXEMPLU.