|
|
алг Знакомство (арг лит Имя, рез лит 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] Стартовый номер участника соревнований по автомотоспорту определяется на квалификационных заездах. При этом фиксируется время начала и конца прохождения так называемого "быстрого" круга (часы, минуты, секунды). Проверьте, корректно ли зафиксированы данные участника, и найдите время прохождения им "быстрого" круга.