Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки программирования на Turbo Pascal


Информационный Канал Subscribe.Ru


Уроки программирования на Turbo Pascal #7

Подписчиков на 2002-08-07 - 587 человек(а).

Рассылка проекта "Олимпиада.com.ru".


Главная Архив задач Конкурс Рассылки Форум Гостевая книга Контакты

Здравствуйте, уважаемые подписчики!


  В рассмотренных до сих пор алгоритмах и программах все команды (операторы) выполнялись последовательно одна за другой в том порядке, в каком они были записаны (линейные алгоритмы). Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи.


Урок 7


  В практике хорошо известны задачи, дальнейший ход решения которых зависит от выполнения какого-либо условия. В жизни часто приходится действовать в зависимости от обстоятельств, от каких-то условий. Но если в жизни мы часто ищем выход из ситуации только тогда, когда попали в неё, в программе необходимо предусмотреть все действия которые необходимо выполнить после проверки условия, как в случае его выполнения, так и в случае невыполнения. Чтобы изменять последовательность выполнения различных частей программы, применяют условный оператор.

7.1. Условный оператор.
  Условный оператор позволяет выполнять или пропускать операторы программы в зависимости от некоторого условия. Условный оператор может иметь две формы:   

Полный оператор.
Формат команды
IF условие THEN оператор_1 ELSE оператор_2;


Схема оператора
:

 

Неполный оператор.
Формат команды
IF условие THEN оператор;


Схема оператора
:

  Если перевести на русский язык английские слова то получим:

  ЕСЛИ условие ТО оператор_1 ИНАЧЕ оператор_2; или ЕСЛИ условие ТО оператор;

  В качестве условия применяют операции сравнения: =, <>, <=, >=, <, >. Слева и справа от знака сравнения записывают арифметические выражения.

  Например, оператор
            If x<>0 then z:=y/x
                еlse write('Ошибка!');
  присвоит переменной Z значение частного y/x, если x<>0, в противном случае высветит на экране слово "Ошибка!".

7.2. Составной оператор.
  В некоторых случаях после слов THEN и ELSE надо выполнить не один оператор, а несколько. Тогда эти операторы заключаются в так называемые операторные скобки, где BEGIN - открывающая скобка, END - закрывающая скобка. Все операторы находящиеся внутри операторных скобок называются составным оператором. Перед словом ELSE точка с запятой никогда не ставится.

  Формат команды: BEGIN оператор; оператор; ... оператор END;

  Например:
        If a<b then

        begin
          R:=a;
          A:=b
          B:=r
        End


  После выполнения такого оператора в переменной А будет большее, а в переменной В - меньшее из двух значений, находившихся там ранее.


  В качестве выполняемого в условном операторе действия может быть другой условный оператор. Например:

    If sqr(x)+sqr(y)>1 then
       If x>y then z:=0
          Else z:=1;


  При такой форме записи со сдвигом вправо для каждого внутреннего действия, легко понять, к какому из двух слов IF относится слово ELSE. Рассмотрим пример программы с использованием условного оператора. Пусть для двух целых чисел надо определить, являются они четными или нет. Для проверки четности используем условие: остаток от деления на 2 четного числа равен 0.


Program prim_7;
Var a,b:integer;
Begin
  Write('введите два целых числа');
  Readln(a,b);
  If a mod 2 = 0 then Writeln (' а - четное ')
  Else Writeln (' a - нечетное ');
  If b mod 2 = 0 then Writeln (' b - четное ')
  Else Writeln (' b -нечетное ');
Readln
End

Задания для тренировки.
1. Вычислить значение у при заданном значении х:

2. Ввести два числа. Напечатать сначала меньшее, затем большее из них.
3. Даны числа x и y. Вычислите число z, равное x+y, если x<=y, и 1 - х + y в противном случае
4. Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так.
5. Если данное число х меньше нуля, то z присвойте значение большего из двух чисел х и у, иначе z присвойте значение полусуммы этих чисел.
6. *Даны два числа. Меньшее из них замените полусуммой этих чисел, а большее - их произведением.
7. Даны радиус круга и сторона квадрата. У какой фигуры площадь больше?
8. Дано целое число. Определить:
   a. Является ли оно четным;
   b. Оканчивается ли оно цифрой 7;
   c. Делится ли оно на 13.

Разбор тренировочного задания урока 6.

8. *Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части.

Данная задача не относится к целочисленной арифметике, ведь дано вещественное а не целое число. Попробуем найти целую и дробную части. А потом просто соберем новое число увеличив дробную часть в 100 раз и уменьшив целую часть тоже в 100 раз.

Program prim_8;
Var a,b,x1,x2:real;
Begin
  Write('введите число');
  Readln(a);
  X1:=int(a) ;    {целая часть}
  X2:=frac(a);    {дробная часть}
  b:=x1/100+x2*100;    {новое число}
  Writeln(b);
  Readln
End.

9. *В кассе имеются купюры достоинством в К рублей и в 1 рубль. Выдать N рублей минимальным набором купюр заданного достоинства.

Определим сколько купюр достоинством K необходимо для выдачи суммы наиболее близкой к данной, но меньше ее. А затем какую сумму осталось выдать.

Program prim_6;
Var k,n,m,p:integer;
Begin
  Write('введите число рублей');
  Readln(n);
  Write('введите достоинство купюры');
  Readln(k);
  m:=n div k;   
  p:=n mod k;   
  Writeln(p,' купюр по 1 рублю, ', m,' купюр по ',k,'руб. Итого=',p+m);
  Readln
End.


Желаю успехов!
Ганилова Татьяна Евгеньевна school6@rikt.ru


Реклама в рассылке:

RLE    

  


Подпишитесь на наши рассылки:

Новости проекта "Олимпиада.com.ru" [Алексей Шамис]
Новости проекта "Olimpiada.com.ru". Новые темы на форуме. Информация о пополнениях в архиве задач. Оперативно и своевременно!

Уроки программирования на Turbo Pascal [Татьяна Ганилова]
Хотите стать Великим Программистом? Начните свой путь к вершине славы с изучения языка Turbo Pascal. Он как нельзя лучше подходит для начинающих программистов и в то же время используется для разработки сложных "профессиональных" программ.

Олимпиадные задачи с решениями на Turbo Pascal [Алексей Шамис]
В рассылке публикуются решения интересных олимпиадных задач различного уровня. Содержит много теоретической информации. Периодичность - 2-3 раза в неделю.

Задача в неделю. Олимпиадные задачи по информатике [Александр Алексеев]
Каждый понедельник в рассылке публикуется задача, которую необходимо решить и в следующий понедельник прислать программу на тестирование. Решения проверяются, и в пятницу публикуется разбор и итоги тестирования.



Всегда рады видеть Вас на нашем сайте. Жду ваших предложений и замечаний, Алексей Шамис

Copyright © 2002 by Tatyana Ganilova.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное