Условный оператор и оператор выбора Решение задач.

Презентация:



Advertisements
Похожие презентации
Операторы языка Паскаль Условные операторы. Оператор условия ЕСЛИ (if) Оператор условия ВЫБОР (case) Условные операторы предназначены для выбора к исполнению.
Advertisements

CASE – ОПЕРАТОР ВЫБОРА. РАССМОТРИМ СЛЕДУЮЩУЮ ЗАДАЧУ : Х, ЕСЛИ Х = 3 У = Х+1, ЕСЛИ Х=0 Х 2 + Х –2, ЕСЛИ Х = -2 Х 3, ЕСЛИ Х = -8.
ОПЕРАЦИИ И СТАНДАРТНЫЕ ФУНКЦИИ языка PASCAL. Темы: Операции Функции Приоритетность.
Тест по теме «Линейный алгоритм». 1.Определите значение целочисленной переменной а после выполнения фрагмента алгоритма. а:=247; b:=(a div 100)*10+9;
1. Какие числа относятся к типу Integer Real 2. Исправь ошибки в программе Program 2 pr; Var b,s: real; Begin Writeln (Введите числа b и с) Readln( b,c);
Типы данных. Преобразование типов данных.. Program Zadacha26622; uses crt; var a,b,c,d: real; begin Write ('1 пачка'); Read(b); Write('листы за неделю');
Арифметические выражения. Выражение - это формальное правило для вычисления некоторого значения. В зависимости от типа значения выражения можно разделить.
Оператор выбораОператор выборасоставим программу, которая по номеру дня недели выводит на экран его название: Program dni_nedeli; Var n: byte; Begin Readln(n);
Оператор выбора. Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит.
Колмыкова С.М. ЧИСЛЕННЫЕ ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ Язык программирования PASCAL.
Циклические программы Информатика и ИКТ 9 класс Гимназия 1 г. Новокуйбышевска Учитель информатики: Красакова О.Н.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
Оператор варианта (выбора). Оператор варианта применяется для решения задач в которых необходимо использовать многократно вложенные друг в друга условные.
Зеленый ? Ждем зеленый! Переходим дорогу! НЕТ ДА.
Презентация на тему: «Программирование Разветвляющихся структур». Составила: учитель информатики Чура Н.А. 1.
Тема урока Команда присваивания. Арифметические операции и выражения. Стандартные функции.
1 Программирование на языке Паскаль Тема 1. Введение.
ТЕМА: «ПРОВЕРКА УСЛОВИЯ» 8 – 9 класс Логунова Наталия Борисовна учитель информатики и ИКТ высшей категории МОСКВА, 2012.
Условный оператор (ветвление) (урок 5). Ветвление Если то иначе кон If then begin end else begin end;
ОПЕРАЦИИ И СТАНДАРТНЫЕ ФУНКЦИИ языка PASCAL. Темы: Операции Функции Приоритетность.
Транксрипт:

Условный оператор и оператор выбора Решение задач

Запишите по правилам языка программирования следующие выражения:

1. Клюша наклюсюкал Х парфусиков, а Плюша наплюфукал в 3 раза больше парфусиков, да еще и отнял у Клюши половину его парфусиков. Сколько парфусиков у Плюши? 2. За время летних каникул Вовочка подрался с N мальчиками. 15 мальчиков он отлупил сам, а остальные отлупили Вовочку. Вечером 31 июля Вовочка с грустью подсчитал, что с начала каникул он был отлуплен 30 мальчиками. Сколько мальчиков отлупили Вовочку в августе? Число N >50 ввести с клавиатуры.

Найдите значения переменных, если это возможно: A:= 2 MOD 3 B:= 20 MOD 5 C:= 81 DIV 0 D:= 14 MOD 0 E:= 5 MOD 1 F:= 3 DIV 2 A:=sqrt(9) B:=sqrt(100) С:=SQR(9) D:=SQR(-10) E:=SQRT(-9) F:=SQR(-9) G:=SQR(0.9) H:=SQRT(0) A:=ROUND(6.9) B:=ROUND(15.39) C:=TRUNC(9.5) D:=TRUNC(-39) E:=INT(9.5) F:=INT(39) G:=TRUNC(-17) H:=TRUNC(5.6) (Операции MOD и DIV можно выполнять только над целыми числами) 123

В Паскале отсутствует возможность возведения в степень, не считая квадрата. Поэтому для получения а 20 нужно а*а*а*а…*а 19 раз. Но если учесть, что результат умножения можно сохранить в промежуточной переменной, ответ можно найти за 5 действий. Program prim_1; Var a,b:real; Begin Write(введите число); Readln(A); В:=A*А;{получаем А во 2 } B:=В*В;{ получаем А в 4 } В:=A*B;{ получаем А в 5 } B:=В*В;{ получаем А в 10 } B:=В*В;{ получаем А в 20 } Writeln(A в 20 степени=,В:0:2); Readln; End. В фигурные скобки {…} в программе можно заключать комментарий, компилятор пропускает текст, заключенный в такие скобки, а комментарий позволяет вспомнить о чем программа если вы позднее возвращаетесь к ее тексту.

Задачи на целочисленное деление. Задача. Дано расстояние в сантиметрах. Найти число полных метров в нем. Program prim_2; Var a,b:integer; Begin Write(введите расстояние в сантиметрах); Readln(a); b:=a div 100; Writeln(b,' метров '); Readln; End.

Дано целое число k (1 k 365). Присвоить целочисленной величине n значение 1, 2,…,6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, суббота или воскресенье) приходится k-й день года, в котором 1 января – понедельник. Так как 1 января приходится на понедельник, то легко определить на какой день приходится k-й день года. Для этого достаточно разделить нацело на 7, а полученный остаток и будет днем недели. Program prim_3; Var n,k:integer; Begin Write(введите день года); Readln(k); n:=k mod 7; Writeln(k, день года - это, n,' день недели '); Readln; End.

Очень часто необходимо чтобы программа определила, из каких цифр состоит число, или определила разряд заданной цифры или наоборот цифру в заданном разряде. Для решения этих задач надо вспомнить, что собой представляет любое число десятичной системы счисления. Любое число можно записать в виде: 32478=3* *1000+4*100+7*10+8=3*104+2*103+4*102+7*101+8*100 Поэтому для обработки десятичных чисел используется 10 в соответствующей степени.

Надо получить число, образованное при перестановке цифр заданного числа. Program prim_4; Var n, x1, x2, m: integer; Begin Write(введите двузначное число); Readln(n); X1:=n mod 10; {выделяем из числа единицы} X2:=n div 10; {получает число десятков в числе} M:=x1*10+x2; {число единиц умножаем на 10, получаем десятки} Writeln(m); Readln End. Пусть дано n= 27. X1:= 27 mod 10 =7 X2:= 27 div 10 = 2 M:=7*10+2 = 72, что и требовалось получить.

Таким образом, мы можем определить лишь крайние цифры числа. А если цифра, которая нам нужна, стоит не с краю? Сделаем ее крайней! Например, дано трехзначное число, надо определить среднюю цифру числа. Пусть а=246 B:=a div 10 =24 B:=b mod 10=4 Или по другому: B:=a mod 100=46 B:=b div 10 =4

Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части. Найдем целую и дробную части. А потом просто соберем новое число увеличив дробную часть в 100 раз и уменьшив целую часть тоже в 100 раз. Program prim_5; 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.

Даны два числа. Меньшее из них замените полусуммой этих чисел, а большее – их произведением. На первый взгляд задача решается просто: If a>b then begin b:=(a+b)/2; a:=a*b end else begin a:=(a+b)/2; b:=a*b end; Но если выполнить эту команду, то ответ получится неверным, почему? Предположим a=10, B=20. Что же получится в результате выполнения оператора. Так как a

х:=а; у:=b; If a>b then begin b:=(x+y)/2; a:=x*y end else begin a:=(x+y)/2; b:=x*y end; А можно запомнить в дополнительных переменных полусумму и произведение: Program prim6; Var a,b,x,y:real; Begin Write(введите два числа); Readln(a,b); X:=a*b;{запомним значение произведения} Y:=(x+y)/2;{запомним значение полусуммы} If a>b then begin b:=y; a:=x end else begin a:=y; b:=x end; Writeln ( a=,a:0:2, b=,b:0:2); Readln End Следовательно надо как-то сохранить первоначальные значения. Можно запомнить их в дополнительных переменных

Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, …, 7) выводит на экран его название (понедельник, вторник, …, воскресенье). Varx: byte; Begin Write( введите число от 1 до 7'); Readln(x); If x=1 then writeln(понедельник); If x=2 then writeln(вторник); If x=3 then writeln(среда); If x=4 then writeln(четверг); If x=5 then writeln(пятница); If x=6 then writeln(суббота); If x=7 then writeln(воскресенье); Readln End.

Оператор ВЫБОРА CASE Если условный оператор напоминает дорожную развилку, то оператор выбора – это разделение пути на множество дорог, по одной из которых пойдет выполнение программы. Формат оператора: CASE выражение OF P1: ; P2: ;... PN: ; ELSE END;

Varx: byte; Begin Write( введите число от 1 до 7'); Readln(x); Case x of 1: writeln(понедельник); 2: writeln(вторник); 3: writeln(среда); 4: writeln(четверг); 5: writeln(пятница); 6: writeln(суббота); 7: writeln(воскресенье); end; Readln End.

Для целого числа K от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом, что при некоторых значениях K слово «лет» надо заменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год. var k:byte; begin write('Введите число лет'); readln(k); case k of 1,21,31,41,51,61,71,81,91: writeln('Мне ',k,' год'); 2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94:writeln('Мне ',k,' года'); else writeln('Мне ',k,' лет'); end; readln; end.

САМОСТОЯТЕЛЬНО: 1.Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т.е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево. 2. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран его название (январь, февраль, …, декабрь).