Задача №1
Написать программу для вычисления значения выражения:
2
1+
3+ 4
6
5+
7+x
при различных значениях х.
Предусмотреть программную обработку значений х, при которых выражение не существует.
Решение
1. Анализ введенных с клавиатуры исходных данных
2. Условие, при котором х > 0
3. Повторение предыдущей операции для каждой функции
4. Выведение условия для выхода
5. Вывод результатов
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x,y,n:real;
begin
repeat
writeln('enter x');
readln(x);
if (x+7)=0 then writeln('resheniy net') else
if (5+6/(7+x))=0 then writeln('resheniy net') else
if (3+4/(5+6/(7+x)))=0 then writeln('resheniy net')
else
y:=1+2/(3+4/(5+6/(7+x)));
writeln('y=',y:1:10);
writeln('dly vuhoda nagmite 0, esli net to 1');
readln(n);
if n=0 then break
until false
end.
Рис. 1. Результаты работы программы для задачи 1
Задача №2
Шахматная доска содержит 8х8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой заданной клетки попасть на вторую одним ходом черного слона.
Решение
1. Анализ введенных с клавиатуры исходных данных для первой клетки
2. Условие для а1 > 8 или в1 > 8.
3. Анализ введенных с клавиатуры исходных данных для второй клетки
4. Условие для abs (а2-а1).
5. Выведение условия для выхода
6. Вывод результатов
Для решения задачи введем координаты первой клетки, притом, что они должны быть меньше восьми; затем координаты второй клетки (они также должны быть меньше восьми). Если разность координат первой клетки равна разности координат второй клетки, то значит с первой клетки можно попасть на вторую одним ходом черного слона, если координаты не равны , то нельзя. Запишем результат.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a1,a2,b1,b2:integer;
c:real;
begin
repeat
writeln('Enter koordinati 1-oy kletki ot 1 do 8');
readln(a1,b1);
if (a1>8) or (b1>8) then writeln('Nelsya enter eto chislo, enter other');
writeln('Enter koordinati 2-oy kletki ot 1 do 8');
readln(a2,b2);
if abs(a2-a1)=abs(b2-b1) then writeln('mogno') else writeln('nelsya');
readln;
writeln('dly vuhoda nagmite 0, esli prodolgit to 1');
readln(c);
if c=0 then break;
until false
end.
Рис.2. Результаты рабаты программы для задачи 2
Задача №3
Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц. Написать программу, определяющую номер последней прочитанной страницы.
Решение
1. Анализ введенных с клавиатуры исходных данных
2. Решение с помощью арифметической прогрессии
3. Выведение условия для выхода
4. Вывод результатов
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
sum,i,n:integer;
begin
write('enter n:');
readln(n);
i:=0;
repeat
inc(i);
sum:=sum+i;
until sum>=n;
writeln('otvet',i);
readln(i);
end.
Рис. 3. ............