Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник_задач_8_класс.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
989.18 Кб
Скачать

Тема: Организация ветвлений в программе. Инструкция if...Then...Else.

ложь

на улице

истина

Условная

холодно

структура

надеть

надеть

(ветвление)

плащ

пальто

Если — то - иначе

Ситуация, связанная с выбором одной из двух альтернатив, встречается в программировании довольно часто. В языке Паскаль структуре выбора соответствует инструкция IF...THEN...ELSE. (вызов <Ctrl>+<F8>)

Формат описания:

IF <логическое выражение> THEN <инструкция 1> ELSE <инструкция 2> ;

Порядок выполнения инструкции IF...THEN...ELSE:

  • сначала вычисляется значение логического выражения,

  • если значение выражения TRUE, то выполняется инструкция 1,

  • иначе (т.е. значение выражения FALSE), выполняется инструкция 2.

Пример 1. Даны два целых числа. Найти среди этих чисел максимальное значение.

program maximum ;

var

A, B : INTEGER ; MAX_NUM : INTEGER ;

begin

WRITE( ‘Введите 2 числа: ’ ) ;

READLN( A, B ) ;

IF A > B THEN

MAX _NUM:= A

ELSE

MAX _NUM:= B;

WRITELN( ‘Максимальное значение: ’, MAX _NUM ) ;

end;

В тех случаях, когда по правилам языка Паскаль необходимо использовать только одну инструкцию, а выполнить нужно несколько действий, применяется составная инструкция. Такая составная инструкция состоит из нескольких инструкций, объединённых операторными скобками BEGIN ... END.

. . . IF X<0 THEN BEGIN Y:=1; K:=K+1; END ELSE BEGIN WRITELN(‘OK’); K:=X; END;

П ример 2.

Написать программу, которая определяет какой области принадлежит точка с координатами (X,Y), первой (I) или второй (II). Для простоты принять, что точка не попадает на границу областей.

Решение:

    • Необходимо ввести координаты точки (X,Y).

    • Определить какой области принадлежит точка

    • Вывести результат.

Программа может быть написана по-разному. Например, так:

PROGRAM ex1IF;

VAR x,y : INTEGER;

BEGIN { ******* MAIN PROGRAM ******* }

WRITELN('Введите координаты точки X,Y ');

READLN(X, Y);

IF X < 4 THEN

WRITELN('Точка с координатами (', x , ',', y , ') принадлежит 1 области)

ELSE

WRITELN('Точка с координатами (', x , ',', y , ') принадлежит 2 области);

END.

Или так:

PROGRAM ex1IF2;

VAR x,y : INTEGER;

ok : BOOLEAN;

BEGIN { ******* MAIN PROGRAM ******* }

WRITELN('Введите координаты точки X,Y ');

READLN(X, Y);

OK:= X<4;

IF OK THEN

WRITELN('Точка с координатами (', x , ',', y , ') принадлежит 1 области)

ELSE

WRITELN('Точка с координатами (', x , ',', y , ') принадлежит 2 области);

END.

Пример 3.

Пусть надо написать программу, которая по заданному значению X вычисляет значение Y. Зависимость Y(X) представлена графиком.

PROGRAM ex3IF;

VAR x,y : INTEGER;

BEGIN { ******* MAIN PROGRAM ******* }

WRITELN('Введите X');

READLN(X);

IF X < 2 THEN

Y:=X

ELSE

Y:=2;

WRITELN('При X=', x ,' y= ', Y) ;

END.

Пример 4.

Определить является ли число a делителем числа b.

PROGRAM ex4IF;

VAR a, b : INTEGER;

BEGIN { ******* MAIN PROGRAM ******* }

WRITELN('Введите два числа a и b ');

READLN(a, b);

IF (b mod a)=0 THEN

WRITELN('Число ', a , ' является делителем числа ', b)

ELSE

WRITELN('Число ', a , ' не является делителем числа ', b);

END.

Пример 5.

Дано целое двухзначное число K. Определить, является ли сумма его цифр двузначным числом.

PROGRAM ex4IF;

VAR a : INTEGER;

BEGIN { ******* MAIN PROGRAM ******* }

WRITELN('Введите двухзначное число a ');

READLN(a);

IF (a mod 10 + a div 10) div 10 <> 0 THEN

WRITELN('Сумма цифр числа ', a , ' - двухзначное число')

ELSE

WRITELN('Сумма цифр числа ', a , ' - однозначное число');

END.