Паскал решаване на проблеми


Решаване на проблеми, написани на Delphi - конзолни приложения. Когато пишете код решения в Turbo Pascal или ABC Паскал среда, следния ред:

употреби
SysUtils;






заменя с: използва CRT;
Тъй като конзолно приложение "не е съвместим" с българския език, всички мнения с транслитерация на програми.

линейни алгоритми
Задача 1.
Добави програма за въвеждане на три случайни числа X, Y и Z от клавиатурата. Ако X е по-голямо от Z, тогава се показва количеството на X и Y, са друго показва стойността на Z.
решение:
програма Project1;

употреби
SysUtils;
Var
X, Y, Z, Рез: реално;
започвам

пиша ( "Wwedi X: '); readln (х);
пиша ( "Wwedi Y: '); readln (у);
пиша ( "Wwedi Z: '); readln (Z);

ако х> Z след Рез: = х + у друг Рез: = Z;

writeln (Рез: 0: 2);
readln;
край.

Проблем 2.
Аз пиша на програмата с клавиатурата три произволни числа X, Y, Z. В програмата е да се намери влезе най-малкото число, и ще го покаже.
решение:

Задача 3.
Дължината на правоъгълен земя част е Х метра, а ширината е равна на Y м. Напишете програма за изчисляване на броя на съветите, в предварително определена част от оградата, ако ширината на борда е 10 сантиметра.
решение:

Проблеми с tsiklamiZadacha 1.
В официалното месечно взема подкуп в размер на Х рубли. Количеството X нестабилна и варира от 0 до 150 000 рубли. В BMW 3, който иска да си купи по официалните подкупи на стойност 1,7 милиона рубли. Напишете програма, която ще изчисли колко месеца ще отнеме официално да събере необходимата сума.
решение:

програма Project1;

употреби
SysUtils;
Var
х: longint;
MES: цяло число;
започвам
MES: = 0;
х: = 0;
равна или по-голяма 1700000>
повторение

случаен характер;
х: = х + случаен (150,000);
writeln (х);

MES: = МОН + 1;
до х> = 1700000;

writeln ( "Mesjac = ', MES);






readln;
край.

Задача 2. (Пример 9 за GIA клас).
Напишете програма, която изчислява продукта от последователността дели на 5. Програмата отнема цяло число, броят на въведената цифра не е известна, последователността на номера, завършващи с номер 0 (0 - знак за края на входа не е включена в поредицата).
Брой номера не повече от 1000. Въведеният номер на модула не надхвърля 30 000.
Програмата трябва да покаже един номер: продуктът на последователността неделими от 5.

Решение: програма LS1;

употреби
SysUtils;
Var
X, Z: цяло число; <Переменные для ввода значений x и вычисления произведения z>
п. цяло число;
етикет L1;
започвам

Z: = 1;

за п: = 1 до 1000 направи
започвам

L1: пиша ( "Vvedi X: '); readln (х);

ако (X 30000) след това
започвам
writeln ( "грешка на входа!");
Иди L1;
приключи;

ако х = 0, тогава се прекъсне друго

ако Frac (х / 5) = 0, тогава Z: = Z * х;
приключи;

ако Z = 1 тогава Z: = 0;
writeln ( "Резултати = ', Z);
readln;
край.
Пример за изпълнение на програма.

програма Project1;

употреби
SysUtils;
Var
х, xmin, Xmax: цяло число;
N, Рез: цяло число;
етикет L1;
започвам
Запис ( "Wedi X: '); ReadLN (х);
xmin: = х; Xmax: = х;
за п: = 1 до 1000 направи
започвам
L1: Напишете ( "Wedi X: '); ReadLN (х);
ако абсолютен (х)> 3000 тогава
започвам
Writeln ( "Грешка при въвеждането! ');
Иди L1;
приключи;
ако х = 0, тогава прекъсване;
ако х Xmax след Xmax: = х;
приключи;
Рез: = Xmax - xmin;
Writeln ( "Rezultat = ', Рез);
readln;
край.


Задача 4.
Напишете програма за конвертиране на числа от двоична в десетична.
Решение. В това приложение ще ви представим двоично число като низ характер, а след това разполагане на съответствие с предварително определен предварително (за обработка на записа с най-младшите битове) и по-нататък в присъствието на "1" в реда, съответстващ изчисление proizvedom.

Линейни (едноизмерни) масиви.
Задача 1.
Предвидени случаен набор от числа, чиято стойност, модул не трябва да надвишава 300 (-300. 300). Броят на записите, е равен на 10. Намерете максимални и минимални числа в масива и дисплея.
Решение.

програма lesson3;

употреби
SysUtils;
Var
Аг: масив [1..10] на цяло число;
мин, макс: цяло число;
Z: цяло число;
х: цяло число;
започвам
случаен характер;
за Z: = 1 до 10 направи
започвам

х: = случаен (600);

ако х> 300 тогава х: = (х * 1) + 300;
Аг [Z]: = х;
writeln (Z, "=", Аг [Z]);
приключи;

мин: = Аг [1]; макс: = Аг [1];

за Z: = 2 до 10 направи
започвам
ако мин> Аг [Z] и след това мин: = Аг [Z];
ако макс Пример изпълнение на програмата.