Паскал решаване на проблеми
Решаване на проблеми, написани на 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];
ако макс Пример изпълнение на програмата.