|
|
|
алг Знакомство (арг лит Имя, рез лит t) нач вывод "Как тебя зовут ?" ввод Имя t := "Привет, " + Имя + "!" | "+" - операция сцепки вывод t кон
Program Hello;
Var Name: String; {Описание переменной Name строкового типа}
BEGIN
Write('Как тебя зовут ? '); {Вывод на экран текста вопроса}
ReadLn(Name); {Ввод c клавиатуры имени}
WriteLn('Привет, ', Name, '!'); {Вывод на экран приветствия}
ReadLn
END.
Здесь последний оператор ReadLn позволяет видеть на экране результаты
работы программы, пока не будет нажата клавиша <Enter>.
| Как тебя зовут ? Тимур
<Enter>
Привет, Тимур ! |
CLS INPUT "Как тебя зовут ? ", Name$ PRINT "Привет, "; Name$; "!" END
алг Цилиндр (арг вещ R, H, рез вещ V, S) нач вещ Pi Pi := 3.14 V := Pi * R**2 * H S := 2 * Pi * R * H кон
Program Cylinder;
Uses Crt; {Подключение библиотеки Crt}
Var
R, {радиус основания цилиндра}
H, {высота цилиндра }
V, {объем цилиндра }
S: Real; {площадь боковой поверхности цилиндра}
BEGIN
ClrScr; {Вызов из библиотеки Crt процедуры очистки экрана}
Write('Введите высоту цилиндра : '); ReadLn(H);
Write('Введите радиус основания : '); ReadLn(R);
V := Pi * R * R * H;
S := 2 * Pi * R * H; WriteLn;
WriteLn('Объем цилиндра = ', V : 5 : 2); {Здесь 5 - общее
количество позиций, занимаемых переменной V при выводе,
а 2 - количество позиций в дробной части значения V}
WriteLn('Площадь боковой поверхности = ', S : 5 : 2);
ReadLn
END.
CLS INPUT "Введите высоту цилиндра : ", H INPUT "Введите радиус основания : ", R V = 3.14 * R ^ 2 * H S = 2 * 3.14 * R * H : PRINT PRINT "Объем цилиндра = "; V PRINT "Площадь боковой поверхности = "; S END
| Номер теста | Данные | Результат | |||||
| xA | yA | xB | yB | xC | yC | Otvet | |
| 1 | 2 | 1 | 2 | 2 | -1 | 3 | "Это точка A" |
| 2 | 2 | 2 | 2 | 1 | -1 | 3 | "Это точка B" |
| 3 | 2 | 2 | -1 | 3 | 2 | 1 | "Это точка C" | /TR>
Школьный АЯ
алг Точки(арг вещ xA,yA,xB,yB,xC,yC, рез лит Otvet) нач вещ DistA,DistB,DistC ввод xA,yA,xB,yB,xC,yC DistA := sqrt(xA**2 + yA**2) DistB := sqrt(xB**2 + yB**2) DistC := sqrt(xC**2 + yC**2)
если (DistA < DistB) и (DistA < DistC)
то Otvet := "Это точка А"
иначе если DistB < DistC
то Otvet := "Это точка B"
иначе Otvet := "Это точка C"
все
все
вывод Otvet
кон
Program Points;
Uses Crt;
Var xA, yA, xB, yB, xC, yC, DistA, DistB, DistC : Real;
BEGIN ClrScr;
WriteLn('Введите координаты точки А:');
Write('x = '); ReadLn(xA); Write('y = '); ReadLn(yA);
WriteLn('Введите координаты точки B:');
Write('x = '); ReadLn(xB); Write('y = '); ReadLn(yB);
WriteLn('Введите координаты точки C:');
Write('x = '); ReadLn(xC); Write('y = '); ReadLn(yC);
DistA := sqrt(sqr(xA) + sqr(yA));
DistB := sqrt(sqr(xB) + sqr(yB));
DistC := sqrt(sqr(xC) + sqr(yC));
WriteLn; Write('Ответ : ');
If (DistA < DistB) and (DistA < DistC)
then WriteLn( 'Это точка А.')
else If (DistB < DistC)
then WriteLn('Это точка B.')
else WriteLn('Это точка C.');
ReadLn
END.
|
|
|||
алг Произведение цифр (арг цел Num, рез цел P)
нач цел i, j, k, l
Num := abs(Num) | abs - абсолютная величина
i := div(Num, 1000) | i - первая цифра
| div - частное от деления с остатком
j := mod(div(Num, 100), 10) | j - вторая цифра
| mod - остаток от деления с остатком
k := mod(div(Num, 10), 10) | k - третья цифра
l := mod(Num, 10) | l - четвертая цифра
P := i * j * k * l;
кон
Program DigitsProduct;
Uses Crt;
Var Number, {заданное число}
i, j, k, l, {цифры числа}
P : Integer; {произведение цифр}
BEGIN ClrScr;
Write( 'Введите четырехзначное число : ' ); ReadLn(Number);
Number:=Abs(Number);
Write( 'Цифры числа ' , Number , ' : ' );
i := Number div 1000; Write(i:3); {первая цифра}
j := Number div 100 mod 10; Write(j:3); {вторая цифра}
k := Number div 10 mod 10; Write(k:3); {третья цифра}
l := Number mod 10; WriteLn(l:3); {четвертая цифра}
P := i * j * k * l ;
WriteLn( 'О т в е т : произведение цифр равно ' , P );
ReadLn
END.
CLS INPUT "Введите четырехзначное число : ", Number PRINT : PRINT "Цифры числа "; Number; ": "; Number = ABS(Number) i = FIX(Number / 1000): PRINT i ; ' FIX - целая часть аргумента j = FIX(Number / 100) MOD 10 : PRINT j ; k = FIX(Number / 10) MOD 10 : PRINT k ; l = Number MOD 10 : PRINT l P = i * j * k * l PRINT : PRINT "О т в е т : произведение цифр равно " ; P END
|
| |||||
| d >0 | x1 = 1, x2 = - 2 | ||||
| d=0 | Корни равны: x1 = - 1, x2 = - 1 | ||||
| d < 0 | Действительных корней нет | ||||
| a=0, b=0, c=0 | Все коэффициенты равны нулю. х любое число. | ||||
| a=0, b=0, c<>0 | Неправильное уравнение | ||||
| a=0, b<>0 | Линейное уравнение. Один корень: x = - 0,5 | ||||
| a <> 0, b <> 0, с = 0 | x1 = 0, x2 = - 0,5 | ||||
алг Квур (арг вещ а, b, c, рез вещ x1, x2, рез лит t)
дано a <> 0
нач вещ d
d := b**2-4*a*c | d - дискриминант квадратного уравнения
если d<0
то t := "Действительных корней нет"
иначе если d=0
то t := "Корни равны"; x1 := -b/(2*a); x2 := x1
иначе t := "Два корня"
x1 := (-b + sqrt(d)) / (2*a)
x2 := (-b - sqrt(d)) / (2*a)
все
все
кон
Program QuadraticEquation;
Uses Crt; { подключение библиотеки Crt }
Var a, b, c : Real; {a, b, c - коэффициенты уравнения}
Discr : Real;
x1, x2 : Real; {x1, x2 - корни }
Test, NTest : Integer; {Ntest - количество тестов }
BEGIN
ClrScr;
Write('Введите количество тестов : ');
ReadLn(NTest);
For Test := 1 to NTest do {цикл по всем тестам задачи }
begin
Write('Тест ', Test, '. Введите коэффициенты a, b, c : ');
ReadLn(a, b, c);
If (a=0) and (b=0) and (c=0)
then begin Write('Все коэффициенты равны нулю.');
WriteLn('x - любое число ')
end
else
If (a=0) and (b<>0)
then WriteLn('Линейное уравнение. Oдин корень: x =', (-c/b):6:2)
else
If (a=0) and (b=0) and (c<>0)
then WriteLn('Неправильное уравнение.')
else
begin
Discr := b*b - 4*a*c;
If Discr > 0
then begin
x1:=(-b + Sqrt(Discr)) / (2*a);
x2:=(-b - Sqrt(Discr)) / (2*a);
WriteLn('x1=' , x1:6:2 , '; x2=' , x2:6:2)
end
else
If Discr = 0
then begin
x1 := -b/(2*a);
WriteLn('Корни равны: x1=', x1:6:2, ' x2=', x1:6:2)
end
else WriteLn('Действительных корней нет.');
end;
WriteLn
end;
ReadLn
END.
CLS
INPUT "Введите количество тестов : ", NTest
FOR Test = 1 TO NTest ' цикл по всем тестам задачи
PRINT "Тест" ; Test ; ". Введите коэффициенты a, b, c : " ;
INPUT a, b, c
IF (a = 0) AND (b = 0) AND (c = 0) THEN
PRINT "Все коэффициенты равны нулю. x - любое число"
ELSE
IF (a = 0) AND (b <> 0) THEN
PRINT "Линейное уравнение, корень один : x = "; -c / b
ELSE
IF (a = 0) AND (b = 0) AND (c <> 0) THEN
PRINT "Неправильное уравнение."
ELSE
Discr = b * b - 4 * a * c
IF Discr > 0 THEN
x1 = (-b + SQR(Discr)) / (2 * a)
x2 = (-b - SQR(Discr)) / (2 * a)
PRINT "x1 = "; x1; "; x2 = "; x2
ELSE
IF Discr = 0 THEN
x1 = - b / (2 * a)
PRINT "Корни равны: x1 = "; x1; "; x2 = "; x1
ELSE PRINT "Действительных корней нет."
END IF
END IF
END IF
END IF
END IF : PRINT
NEXT Test
END
| Тест 1 . Введите коэффициенты
a, b, c : ? 1, 1, –2 <Enter>
x1 = 1 ; x2 = – 2 Тест 2 . Введите коэффициенты a, b, c :
? 1, 2, 1 <Enter>
Тест 3 . Введите коэффициенты a, b, c :
? 2, 1, 2 <Enter>
|
|
|
|
|
| |||||
| Первая прямая не существует | Это не прямая | |||||||
| Вторая прямая не существует | Это не прямая | |||||||
| Все коэффициенты одной или обеих прямых равны нулю | Это не прямая (прямые) | |||||||
| Коэффициенты попарно равны | Прямые совпадают | |||||||
| Коэффициенты попарно пропорциональны | Прямые совпадают | |||||||
| Прямые параллельны | Прямые параллельны | |||||||
| Прямые пересекаются | x=1.50, y=1.25 | |||||||
алг Пересечение (арг вещ a1, b1, c1, a2, b2, c2,
рез вещ x, y, рез лит t)
нач
если (a1 = 0 и b1 = 0) или ( a2 = 0 и b2 = 0)
то t := "Это не прямая (прямые)"
иначе если (a1*b2 = a2*b1) и (a1*c2 = a2*c1)
то t := "Прямые совпадают"
иначе если a1*b2 = a2*b1
то t := "Прямые параллельны"
иначе x := (c1*b2-c2*b1)/(b1*a2-b2*a1)
y := (c2*a1-c1*a2)/(b1*a2-b2*a1)
все
все
все
кон
Program Intersection;
Uses Crt; {подключение библиотеки Crt }
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2, b2, c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
Test, NTest : Integer;
BEGIN
ClrScr; {очистка экрана}
Write('Введите количество тестов : ');
ReadLn(NTest);
For Test := 1 to NTest do {цикл по всем тестам задачи}
begin
Write('Тест ', Test, '. Введите a1, b1, c1 : ');
ReadLn( a1, b1, c1);
Write(' Введите a2, b2, c2 : ');
ReadLn( a2, b2, c2);
WriteLn; Write('О т в е т : ');
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end; WriteLn
end;
ReadLn
END.
| Введите количество тестов
: 7
Тест 1. Введите a1, b1, c1 : 0 0 1 <Enter> Введите a2, b2, c2 : 1 2 2 <Enter> О т в е т : это не прямая (прямые). Тест 2. Введите a1, b1, c1 : 1 2
2 <Enter>
Тест 3. Введите a1, b1, c1 : 0 0
0 <Enter>
Тест 4. Введите a1, b1, c1 : 1 2
1 <Enter>
Тест 5. Введите a1, b1, c1 : 1 2
1 <Enter>
Тест 6. Введите a1, b1, c1 : 2 3
-1 <Enter>
Тест 7. Введите a1, b1, c1 : 1 2
-4 <Enter>
|
CLS INPUT "Введите количество тестов : ", NTest FOR Test = 1 TO NTest ' цикл по всем тестам задачи PRINT "Тест"; Test; INPUT ". Введите a1, b1, c1 : ", a1, b1, c1 INPUT " Введите a2, b2, c2 : ", a2, b2, c2
PRINT : PRINT "О т в е т : ";
IF (a1 = 0) AND (b1 = 0) OR (a2 = 0) AND (b2 = 0) THEN
PRINT "это не прямая (прямые)."
ELSE
IF (a1*b2=a2*b1) AND (a1*c2=a2*c1) THEN
PRINT "прямые совпадают."
ELSE
IF a1*b2 = a2*b1 THEN
PRINT "прямые параллельны."
ELSE x=(c1*b2 - c2*b1) / (b1*a2 - b2*a1)
y=(c2*a1 - c1*a2) / (b1*a2 - b2*a1)
PRINT "координаты точки пересечения: x="; x ; ", y="; y
END IF
END IF
END IF
PRINT
NEXT Test
END
1.1. [Pascal | C | Basic] Вычислите длину окружности, площадь круга и объём шара одного и того же заданного радиуса.
1.2. [Pascal | C | Basic] Вычислите периметр и площадь прямоугольного треугольника по длинам двух его катетов.
1.3. [Pascal | C | Basic] По координатам трёх вершин некоторого треугольника найдите его площадь и периметр.
1.4. [Pascal | C | Basic] Вычислите дробную часть среднего геометрического трёх заданных вещественных чисел.
1.5. [Pascal | C | Basic] Определите, является ли заданное целое число А нечётным двузначным числом.
1.6. [Pascal | C | Basic] Определите, имеется ли среди заданных целых чисел A, B, C хотя бы одно чётное.
1.7. [Pascal | C | Basic] Даны три числа. Выберите те из них, которые принадлежат заданному отрезку [ e, f ].
1.8. [Pascal | C | Basic] Определите число, полученное выписыванием в обратном порядке цифр заданного целого трёхзначного числа.
1.9. [Pascal | C | Basic] Для заданных вещественных чисел a, b и c определите, имеет ли уравнение ax2 + bx + c = 0 хотя бы одно вещественное решение.
1.10. [Pascal | C | Basic] Вычислите площадь кольца, ширина которого равна Н, а отношение радиуса большей окружности к радиусу меньшей окружности равно D.
1.11. [Pascal | C | Basic] Определите, есть ли среди цифр заданного целого трёхзначного числа одинаковые.
1.12. [Pascal | C | Basic] Заданы площади круга и квадрата. Определите, поместится ли квадрат в круге.
1.13. [Pascal | C | Basic] Для задачи 1.12 определите, поместится ли круг в квадрате.
1.14. [Pascal | C | Basic] Заданы координаты двух точек. Определите, лежат ли они на одной окружности с центром в начале координат.
1.15. [Pascal | C | Basic] Определите, лежит ли заданная точка на одной из сторон треугольника, заданного координатами своих вершин.
1.16. [Pascal | C | Basic] Проверьте, можно ли построить треугольник из отрезков с длинами x, y, z и, если можно, то какой - остроугольный, прямоугольный или тупоугольный.
1.17. [Pascal | C | Basic] Проверьте, можно ли построить параллелограмм из отрезков с длинами x, y, v, w.
1.18. [Pascal | C | Basic] Даны координаты (как целые от 1 до 8) двух полей шахматной доски. Определите, может ли конь за один ход перейти с одного из этих полей на другое.
1.19. [Pascal | C | Basic] Треугольник задан величинами своих углов (град.) и радиусом описанной окружности. Вычислите стороны треугольника.
1.20. [Pascal | C | Basic] Смешали v1 литров воды с температурой t1 градусов Цельсия с v2 литрами воды с температурой t2 градусов Цельсия. Вычислите объем и температуру образовавшейся смеси.
1.21. [Pascal | C | Basic] Выберите наибольшее из трех заданных чисел.
1.22. [Pascal | C | Basic] Два прямоугольника заданы длинами сторон. Определите, можно ли первый прямоугольник целиком разместить во втором.
1.23. [Pascal | C | Basic] Значения заданных переменных a, b и c перераспределите таким образом, что a, b, c станут, соответственно, наименьшим, средним и наибольшим значениями.
1.24. [Pascal | C | Basic] Решите линейное уравнение ax = b.
1.25. [Pascal | C | Basic] Решите биквадратное уравнение ax4 + bx2 + c = 0.
1.26. [Pascal | C | Basic] Определите номер квадранта, в котором находится точка с заданными координатами (x, y).
1.27. [Pascal | C | Basic] Запишите заданное смешанное число в виде неправильной дроби.
1.28. [Pascal | C | Basic] Определите, пройдет ли кирпич с рёбрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его рёбер было параллельно или перпендикулярно каждой из сторон отверстия.
1.29. [Pascal | C | Basic] Идет k-ая секунда суток. Определитe, сколько полных часов и полных минут прошло к этому моменту от начала суток.
1.30.* [Pascal | C | Basic] Найдите центр и радиус окружности, проходящей через три заданные точки на плоскости.
1.31.* [Pascal | C | Basic] Даны четыре точки на плоскости. Определите, можно ли построить треугольник с вершинами в этих точках такой, что оставшаяся точка окажется внутри треугольника.
1.32.* [Pascal | C | Basic] Определите, имеют ли общие точки две плоские фигуры - треугольник с заданными координатами его вершин и круг радиусом R c центром в начале координат.
1.33. [Pascal | C | Basic] В кубический, наполненный до краев аквариум со стороной а метров выпустили рыбу-шар диаметром b см. Вычислите, сколько процентов от первоначального объема воды выплеснется из аквариума (хвост и плавники рыбы не учитывайте).
1.34. [Pascal | C | Basic] Станции А, B и C расположены на n-м, m-м и p-м километрах железной дороги, соответственно. Какие из этих станций расположены наиболее близко друг к другу?
1.35. [Pascal | C | Basic] На карте координаты начала и конца строящегося прямолинейного участка шоссе обозначены как (x1, y1 ) и (x1, y2 ). Карьер, откуда можно брать гравий для стройки, имеет координаты (x0, y0), причем x0 <> x1. Определите минимальное расстояние от строящегося участка шоссе до карьера.
1.36. [Pascal | C | Basic] Составьте программу, играющую со своим автором в "Орел или решку".
1.37*. [Pascal | C | Basic] Любитель горнолыжного спорта собирается провести свой недельный отпуск на одном из трех курортов. Курорт А открыт с начала ноября по конец апреля, но из-за лавинной опасности его закрывают на весь январь. Курорт В открыт с начала декабря по конец марта. Его закрывают на соревнования с 1 по 15 февраля. Курорт С постоянно открыт с начала октября по конец мая. Стоимость отдыха на каждом из курортов, включая проезд, составляет, соответственно, P1, P2 и P3 рублей. По дате начала отпуска определите, сможет ли он провести свой отпуск в горах, и какой минимальной суммой он должен располагать.
1.38*. [Pascal | C | Basic] Стартовый номер участника соревнований по автомотоспорту определяется на квалификационных заездах. При этом фиксируется время начала и конца прохождения так называемого "быстрого" круга (часы, минуты, секунды). Проверьте, корректно ли зафиксированы данные участника, и найдите время прохождения им "быстрого" круга.