Цель урока: Дать основные понятия о языках программирования. План урока: 1. Основные сведения о языках программирования. 2. Основные средства языков.

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



Advertisements
Похожие презентации
Цель : Показать сходство и различие вложенных циклов в языках программирования QBasic и Turbo Pascal 7.0.
Advertisements

Цель урока: Показать сходство и различие операторов цикла с предусловием и постусловием в языках программирования QBasic и Turbo Pascal 7.0. План урока:
Цель урока: Дать основные понятия о языках программирования. План : 1. Основные сведения о языках программирования. 2. Основные средства языков. Алфавит.
Алгоритмы работы с величинами. Данные Компьютер-исполнитель работает с определенными данными по определенной программе. Данные - это множество величин.
Тема : Встроенные функции. Цель урока: Дать основные понятия о языках программирования.
Цель: Показать сходство и различие цикла с параметром в языках программирования QBasic и Turbo Pascal 7.0.
Ответы к контрольной работе 1 Вариант 1 N=121, сумма равна 4, верно. А=15, В=17, 357, 663,816 45, 4545 Вариант 2 А=5, N=121, нет 121, 181, 241,301, 361,
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Организация программ циклической структуры. Виды циклов: Цикл с предусловием (while) Цикл с постусловием (repeat) Цикл с параметром (for)
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Циклы на языке Pascal повторение. Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать.
Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Основные этапы решения задач на компьютере. Первый этап – постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
turbo.exe основной файл среды Любой язык обладает алфавитом, синтаксисом и семантикой. В алфавит входит набор символов, использующихся в языке с помощью.
Язык программирования Pascal. Программа это упорядоченный список команд, необходимых для решения некоторой задачи. Языком программирования называют систему.
Основы алгоритмизации и программирования. Компьютер – это устройство для универсальной обработки информации. Достаточно только написать точную инструкцию.
Цель : Показать сходство и различие условного оператора в языках программирования QBasic и Turbo Pascal 7.0.
Транксрипт:

Цель урока: Дать основные понятия о языках программирования. План урока: 1. Основные сведения о языках программирования. 2. Основные средства языков. Алфавит языков. Служебные слова. 3. Структура программ. 4. Домашнее задание.

Основные сведения о языках программирования Основные сведения о языках программирования Под языком понимают любую систему знаков (Знак – это объект, специально выделенный для передачи информации: буква, жест, положение переключателя и т.п.). И здесь возникает следующая проблема - язык ЭВМ (машинный язык) весьма далек от понятий, которыми оперирует человек: регистр, переслать, перейти по адресу и т. д., и все это записывается в машинных кодах. Поэтому, чтобы компьютер мог понять написанную программу, она должна быть переведена на язык, понятный самому компьютеру. Этот процесс перевода называется трансляцией. Существует два различных подхода к трансляции – интерпретация и компиляция: Существует два различных подхода к трансляции – интерпретация и компиляция:

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

Языки компилирующего типа сначала переводят весь текст программы в машинные коды, а уже затем полученный файл может быть запущен на выполнение. Откомпилированная программа выполняется гораздо быстрее (в 5-10 раз), но наличие ошибок на этапе компиляции требует довольно много времени на их исправление. Компиляторы

ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА Символы языка - это элементарные знаки, используемые при составлении любых текстов. Набор таких символов называют алфавитом языка. Символы языка - это элементарные знаки, используемые при составлении любых текстов. Набор таких символов называют алфавитом языка. Алфавит (набор символов) языка Turbo Pascal 7.0. включает: все латинские прописные и строчные буквы все латинские прописные и строчные буквы(A-Z,a-z); арабские цифры 0-9; арабские цифры 0-9; знаки + - * \ / ^,. ; : ( ) _ и др.; знаки + - * \ / ^,. ; : ( ) _ и др.; служебные слова служебные слова

Для записи команд, имен функций, поясняющих терминов Turbo Pascal 7.0 предусматривают набор строго определенных слов, которые называются служебными или зарезервированными (это английские мнемонические сокращения). Служебные слова делятся на три категории: - операторы (коды операций) WRITELN и т.д.) - функции (имена функций) (SIN,COS и т.д.) - ключевые слова (AND, VAR, BEGIN, END и т.д.) Полный список служебных слов приведен в приложениях любого справочника. Их используют только в том значении, которое заранее установлено в языке. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА

Структура программы Turbo Pascal 7.0 Turbo Pascal 7.0 Program имя (input, output); Label; - раздел меток; Const; - раздел констант; Type; - раздел типов; Var; - раздел переменных; Procedure - раздел процедур и функций; FunctionBEGIN оператор 1; оператор 2; ………….. оператор n-1; оператор n; END.

Домашнее задание Домашнее задание Подготовить ответы на вопросы: Для чего служит компьютер? Что называется алгоритмом? Что называется алгоритмом? Что называется алфавитом языка? Что называется алфавитом языка? Что такое интерпретация и компиляция? Что такое интерпретация и компиляция? Что представляет собой программа? Что представляет собой программа? Что включает в себя алфавит языка Turbo Pascal 7.0? Что включает в себя алфавит языка Turbo Pascal 7.0? В каком разделе происходит описание переменных? В каком разделе происходит описание переменных?

Цель урока: Дать основные понятия о языках программирования. План урока: 1. Проверка домашнего задания. 2. Раздел описания типов в Turbo Pascal Домашнее задание. Язык программирования Turbo Pascal 7.0. Тема урока: Язык программирования Turbo Pascal 7.0.

Проверка домашнего задания Вопросы. Для чего служит компьютер? Что называется алгоритмом? Что называется алгоритмом? Что называется алфавитом языка? Что называется алфавитом языка? Что такое интерпретация и компиляция? Что такое интерпретация и компиляция? Что представляет собой программа? Что представляет собой программа? В каком разделе происходит описание переменных? В каком разделе происходит описание переменных?

Разделописания типов в Turbo Pascal 7.0 Раздел описания типов в Turbo Pascal 7.0 В языке Turbo Pascal 7.0 все данные, используемые программой, должны принадлежать к какому-либо заранее известному типу данных. Тип данных определяет: - формат представления данных в памяти ЭВМ; - множество допустимых значений; - множество допустимых операций.

Разделописания типов в Turbo Pascal 7.0 Раздел описания типов в Turbo Pascal 7.0 Типы данных в языке программирования Turbo Pascal 7.0 делятся на пять основных классов: Типы данных простые структурированные ссылочные процедурные объектные

Простые типы данных ПРОСТЫЕ ТИПЫ ДАННЫХ ПОРЯДКОВЫЕ ЦЕЛЫЙ ЛОГИЧЕСКИЙ СИМВОЛЬНЫЙ ОГРАНИЧЕННЫЙ ПЕРЕЧИСЛЯЕМЫЙ ВЕЩЕСТВЕННЫЙ

В математике порядковым числом называется номер элемента при перечислении. Под порядковым типом понимают тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении. Порядковый тип

В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение, и для каждого значения, кроме последнего, существует последующее значение. В языке Turbo Pascal 7.0 существуют стандартные функции, позволяющие определять соответствующие значения для заданного значения: функция Pred(x) определяет предыдущее значение величины х, функция Succ(x) определяет последующее значение величины х; функция Ord(x) возвращает порядковый номер величины х. Порядковый тип

Целочисленныетипы Целочисленные типы Тип Диапазон возможных значений Формат Shorting байт со знаком Integer байта со знаком Longint байта со знаком Byte байт без знака Word байта без знака

Вещественныетипы Вещественные типы Тип Диапазон возможных значений Точность Формат Real2.9Е Е знаков 6 байт Single1.5Е Е3878 знаков 4 байта Double5.0E E знаков 8 байт Extended3.4Е Е знаков 10 байт Comp-9.2Е Е знаков 8 байт

Логический тип и логические выражения (BOOLEAN) Переменные, константы и выражения логического типа имеют только два значения: TRUE (истина) или FALSE (ложь) Например, при сравнении чисел А и В результат будет TRUE (истина) или FALSE (ложь в зависимости от значений А и В). Кроме операций сравнения, логический результат дает функция целой величины Odd (нечетный), которая имеет значение TRUE, если ее аргумент нечетный, и FALSE, если ее аргумент четный.

Для логических переменных определены операции: NOT, AND, OR, XOR. В QBasic определены еще две логических операции: логическое следование IMP и эквивалентность EQW. Логический тип, как и целые типы, относятся к порядковым типам. Порядковый тип – это тип данных, для которого определены отношения порядка, то есть для любого элемента можно определить последующий и предыдущий элемент. Логический тип и логические выражения (BOOLEAN)

Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. Причем отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще, в логическом выражении принят следующий приоритет операций: NOT AND, *, DIV, MOD OR, XOR, +, - операции сравнения. Логический тип и логические выражения (BOOLEAN)

Порядок выполнения операций определяется скобками. Например, в логическом выражении A OR В AND NOT (A OR В) сначала выполняется заключенная в скобки операция OR, а затем операции NOT, AND, OR. В языке Turbo Pascal 7.0 нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write. В этом случае для идентификаторов FALSE и TRUE автоматически отводится по 6 позиций: две перед словом TRUE и одна - перед FALSE. Логический тип и логические выражения (BOOLEAN)

Перечисляемый тип данных Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами этого типа. Для объявления переменной список возможных значений, разделенных запятой, указывается в круглых скобках. Например, Var month: (january, february, marth, april, may, june, july, august, september, october, november, december); Упорядоченность элементов перечисляемого типа определяется порядком их следования. Самый левый имеет минимальное значение (значение функции ord для него равно 0), а наиболее правый максимальное.

Символьный тип данных Описание: идентификатор Char, Диапазон значений: значением переменной этого типа может быть любой символ это буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255. Так как символы языка упорядочены, то к символьным данным применимы операции сравнения. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.

Обычно значения для переменных типа char задаются в апострофах: ch:= '*'; a:= '3'; letter:='G'. Кроме того, имеется возможность задавать значения указанием непосредственного числового значения ASCII-кода: kd:=#65 {символ 'A'}; s:=#10 {клавиша }. Так как символьный тип является порядковым типом данных, то для него справедливо все, что было сказано о порядковых типах.

Интервальный (ограниченный) тип данных - интервал значений порядкового типа, называемого базовым типом. Описание типа задает наименьшее и наибольшее значения, входящие в этот интервал. Например, Var a:1..25; ch: 'а'..'z'; Здесь переменные а и ch могут принимать значения только из указанного интервала; базовым типом для переменной а является целый тип, а для переменной ch символьный. Переменная ограниченного типа сохраняет все свойства переменных базового типа.

Использование ограниченного типа делает программу более наглядной и понятной. Например, если в программе переменная b может принимать только значения 3, 4, 5, 6, 7, 8, то лучше описать ее следующим образом: Var b:3..8; чем Var b: Integer; так как в случае выхода значения b за диапазон 3..8 в первом случае будет выдано диагностическое сообщение, которое поможет найти ошибку. Во втором случае будет получен неправильный результат, что затруднит поиск ошибки. Таким образом, второй вариант описания переменной следует использовать в тех случаях, когда диапазон значений заранее неизвестен, либо занимает весь допустимый интервал значений для рассматриваемого типа. Интервальный (ограниченный) тип данных

Константыи типизированные константы Константы и типизированные константы Числа, символы, строки множества, которые не изменяют своего значения в процессе выполнения программы, должны объявляться как постоянные, т.е. константы. Например: CONST E= ;(Число Эйлера) C= E+8;(скорость света в м\с) CUBE =12;(число ребер куба) HELLO = Привет ;(строка – приветствие) On = true;(логические константы) Off = false;

Типизированные константы могут изменять свое значение в процессе выполнения программы. Типизированные константы, в сущности, правильнее считать переменными, но правила их объявления ближе к правилу объявления констант, поэтому они получили такое название. Например: CONST FLAG: BOOLENT=TRUE; A:INTEGER=90; Константыи типизированные константы Константы и типизированные константы

Домашнеезадание Домашнее задание Подготовить ответы на вопросы: 1. Чем характеризуется переменная? 2. Перечислите типы данных? 3. Как описываются переменные? 4. Какова структура программы? 5. С чего начинается основная программа? 6. Чем заканчивается программа?

Тема урока: Встроенные функции. Цель урока: Дать основные понятия о языках программирования. План урока: 1. Проверка домашнего задания. 2. Встроенные функции в язык е Turbo Pascal Операторы ввода/вывода в язык е Turbo Pascal Первые программы на язык е Turbo Pascal Решение задач. 6. Домашнее задание.

Ход урока 1. Проверка домашнего задания. Вопросы. Чем характеризуется переменная? Перечислите типы данных? Как описываются переменные? Какова структура программы? С чего начинается основная программа? Чем заканчивается программа?

Встроенные функции Каждая функция имеет одну форму записи: Имя-функции (аргумент) Имя функции выбирается из таблицы, а аргумент записывается в виде арифметического выражения. Например: ABS(x).

Математическая запись Запись Turbo Pascal 7.0 |x|ABS(x) sin xSIN(X) cos xCOS(X) tg x arctg xArcTAN(X) целая часть хINT(X) квадратный корень из х SQRT(X) выдает случайное число RANDOM[(X)] из интервала (0,1) Некоторые встроенные функции

Математическая запись Запись Turbo Pascal 7.0 Квадрат аргументаSQR(X) Показательная функция EXP(X) Натуральный логарифмLN(N) Число ПИPI без аргумента возвращает число равное ROUND(X) целой части (округляет по правилам арифметики тип LONGINT дробная часть числаFRAC(X) округляет числи, отбрасывая TRUNC(X) дробную часть числа тип LONGINT увеличивает X на величину YINC(X,Y) уменьшает X на величину YDEC(X,Y)

ОПЕРАТОРЫ ВВОДА, ВЫВОДА ОПЕРАТОРЫ ВЫВОДА Turbo Pascal WRITE(а 1,а 2,...,аn) - выводит последовательно значения переменных а 1,а 2,...,аn Переход на следующую строку не происходит. 2. WRITELN(а 1,а 2,..,аn) выводит последовательно значения а 1,а 2,..,аn. Переход на следующую строку происходит. 3. WRITELN - осуществляет переход на новую строку. Последовательное расположение операторов 1) и 3) равносильно одному оператору 2).

ОПЕРАТОРЫ ВВОДА Turbo Pascal READ(а 1,а 2,...,аn) - каждое вводимое значение получают последовательно переменные а 1,а 2,...,аn; 2.READLN(а 1,а 2,..,аn) - каждое вводимое значение получают последовательно переменные а 1,а 2,...,аn. 3. READLN - переход на новую строку при вводе данных. Такой оператор применяется, когда исполнение программы желательно задержать до нажатия клавиши ENTER.

Первые программы на языке Turbo Pascal 7.0 Вычислить периметр прямоугольника со сторонами А и В. Решение. Обозначим периметр буквой Р, тогда Р =(А+В)*2 Составим программу при конкретных значениях А и В. Пусть А = 8, В = 21. A B

Рrogram prim2; Uses Crt; Описываем переменные. Var a,b,p: real; Производим очистку экрана Begin clrscr; Присваиваем переменным значения a:=8; b:=21; Вычисляем периметр прямоугольника p:=(a+b)*2; Выводим значения периметра экран. Write('p=',p); END.(обязательный оператор) TP

Задания для самостоятельного решения: А) Занести в переменную Р по очереди значения некоторых вышеприведенных функций, аргументом которых является сумма А+В. p:= sin (a + b); Б) Напечатайте случайное число в пределах от А до В. p:= random(b-a+1)+a; В) Напечатайте значения переменной Р в формате: 3 позиции для целой части и 2 для дробной. write(p:6:2); (6=3+2+1 на точку)

Домашнее задание Подготовить ответы на вопросы: Как записывается оператор вывода? Как записывается оператор ввода? Как записывается ооператор присвоения? Чем заканчивается программа? Какая функция используется при записи выражения y=х 2+3 х 7 на языке Turbo Pascal 7.0? Записать на языке Turbo Pascal 7.0 следующие выражения: у = 5 х х + 2; z = 14 х 4 -5x х-17. Какие операции можно применять к переменным целого типа?

Цель урока: Показать сходство и различие условного оператора в языке программирования Turbo Pascal 7.0. План урока: 1. Проверка домашнего задания. 2. Условный оператор. 3. Оператор варианта. 4. Домашнее задание.

Ход урока 1. Проверка домашнего задания. Вопросы. Как записывается оператор вывода? Как записывается оператор ввода? Как записывается оператор присвоения? Чем заканчивается программа? Какая функция используется при записи вы­ражения y=х 2+3 х 7 на языке Turbo Pascal 7.0? Записать на языке Turbo Pascal 7.0 следующие вы­ражения: у = 5 х х + 2; z = 14 х 4-5x3+11 х-17. Какие операции можно применять к переменным целого типа?

Условный оператор Условные операторы в Turbo Pascal 7.0 помогают нам осуществить "ветвление" программы, т.е. передать управление по условию. Условный оператор имеет вид: IF условие THEN [ELSE Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде равенств или неравенств. Сложные условия составляют из простых с помощью логических операций. Если условие истинно, то выполняется, в противном случае -.

Даны два числа А и В. Найти наибольшее из них. Program prim1; uses crt; Описываем переменные А и В как целые Var a,b: integer; Begin Clrscr; Вводим два целых числа Write('введume 2 числа'); Readln(a,b); Если A>B, то выводим на экран А, иначе В. If a>b Then Writeln(a) Else Writeln(b); End. TP

В Turbo Pascal 7.0, если в качестве оператора должна выполниться серия операторов, то они объединяются в операторные скобки Begin-End

Оператор варианта Если необходимо осуществить проверку более сложных условий, чем ДА/НЕТ, целесообразно использовать условный оператор Case переменная Of Если выражение выбора отвечает условиям списка выражений данного блока CASE, выполняются операторы из этого блока.

Program prim2; var N:integer; Вводим целое число N. begin writeln(n=); readln(n); Case n of Если N

Домашнее задание Имеется условный оператор: if D10 Then writeln('ypa!') Else Writeln(' плохо...'); Можно ли заменить его следующими операторами: if D=10 Then Writeln('ypa!') Else Writeln('nлoxo...'); if Not(D=W) Then Writeln('ypa!') Else Writeln('nлoxo...'); if Not(D=10) Then Writeln('плоxo...') Else Writeln('ypa!'); if Not(D10) Then Writeln('nлoxo...') Else Writeln('ypa!'). Какими будут значения переменных j, k после выполнения условного оператора: if j>k Then j:=k - 2 Else dec(k,2); если исходные значения переменных равны: j=3,k=5; j=3,k=3; j=3,k=2.

Показать цикл с параметром в языке программирования Turbo Pascal 7.0. План урока: 1. Проверка домашнего задания. 2. Цикл с параметром. 3. Решение задач. 4. Домашнее задание. Цель урока:

Проверка домашнего задания 1. Имеется условный оператор: if D10 Then writeln('ypa!') Else Writeln(' плохо...'); Можно ли заменить его следующими операторами: if D=10 Then Writeln('ypa!') Else Writeln('nлoxo...'); (НЕТ) if Not(D=W) Then Writeln('ypa!') Else Writeln('nлoxo...'); (Да, если W=10 ) if Not(D=10) Then Writeln('плоxo...') Else Writeln('ypa!'); (НЕТ) if Not(D10) Then Writeln('nлoxo...') Else Writeln('ypa!'). (ДА)

2. Какими будут значения переменных j, k после выполнения условного оператора: if j>k Then j:=k - 2 Else dec(k,2); если исходные значения переменных равны: j=3, k=5;Ответы:(j=3, к=3) j=3, k=3;(j=3, к=1) j=3, k=2.(j=0, k=2)

Цикл с параметром For :=А То В Do Оператор цикла с параметром применяют тогда, когда известно число повторений одного и того же действия. Начальное и конечное значения параметра цикла могут быть представлены константами, переменными или арифметическими выражениями.

Рассмотрим, как выполняется оператор цикла с параметром вида For :=А То В Do Сначала вычисляются значения выражений А и В. Если А последовательно принимает значения, равные А, А+1,..., В-1, В, и для каждого из этих значений выполняется. Если А>В, то не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится. Оператор цикла с параметром For :=А DownTo В Do выполняется аналогичным образом, но значение изменяется с шагом, равным -1. Цикл с параметром

Составить программу вычисления значения выражения y=1+1/2+1/3+… +1/20. В данном случае целесообразно организовать цикл с параметром, изменяющимся от 1 до 20, то есть шаг изменения параметра равен +1. Обозначим: у очередное значение суммы дробей; n параметр цикла. Учитывая это, составим программу: Program prim1; uses crt; Var n: Integer; y: real; Begin clrscr; Задаем начальное значение равное нулю. y:=0; TP

Организовываем цикл с параметром от 1 до 20 For n:=1 to 20 Do begin Находим очередную сумму. y:=y + 1/n; Выводим на экран очередную сумму. Writeln('y=',y); End.; end. Самостоятельное задание. А) Переставьте строки вывода результата за (End;) Б) Измените цикл с 20 до 1.

Из чисел от 10 до 99 вывести те, сумма цифр которых равна S(0

Program prim2; uses crt; Var k,n,pl,p2,s:Integer; Begin clrscr; Задаем целое число от 10 до 99. Writeln(' целое число n='); Readln(n); Организовываем цикл с параметром For k:=10 To 99 Do Begin Выделяем первую цифру. P1:=k Div 10; Выделяем вторую цифру. p2:=k Mod 10; Находим сумму цифр s:=p1+p2; Если сумма цифр равна заданному числу N, то выводим К if s=n Then Writeln(k=,k); End; End.

Дано натуральное число n (1000

Program Prim3; uses crt; Var n, m, a, i: Integer; Begin Clrscr; Введем четырехзначное целое число Writeln('N

Домашнее задание 1. Определить значение переменной S после выполнения следующих операторов: s:=0; n:=5 For i:=2 То n Do s:=s+100 Div i 2. Какие из приведенных операторов правильные и почему? А) For i:=12 To 15 Do s:=s+i; Б) For a:=30 To 20 Do if a Mod 3=0 Then d:=d+1; 3. Как выглядит оператор цикла с параметром? Как он работает?

Цель урока: Показать сходство и различие вложенных циклов в языке программирования Turbo Pascal 7.0. План урока: Проверка домашнего задания. Цикл с предусловием. Оператор цикла с постусловием Решение задач. Домашнее задание.

Проверка домашнего задания 1. Определить значение переменной S после выполнения следующих операторов: s:=0; n:=5 For i:=2 То n Do s:=s+100 Div i Ответ:S= А) правильноБ) неправильно, так как начальное значение меньше конечного. Вопросы. Как записывается оператор цикла с параметром? Как он работает? Как записывается полный условный оператор? Как он работает? Как записывается неполный условный оператор? Как он работает?

Цикл с предусловием. While... Do Цикл с предусловием используется для программирования процессов, в которых число повторений оператора цикла не известно, а задается некоторое условие его окончания. Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется, а затем вновь проверяется условие и т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение прекратится.

Дано натуральное число n. Посчитать количество цифр в числе Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю. Примечание. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание.

Вводим целое число. Запоминаем его и счетчику цифр Пока m0 делать цикл. "уменьшаем" число на последнюю Вывод количества цифр Program prim1; uses crt; Var m, n: Longint; k: Integer; {счетчик цифр} Begin clrscr; Writeln(' Введите N='); Readln(n); присваиваем начальное значение. m: = n; k:=0; While m0 Do Begin цифру, т.е. в 10 раз. k:=k+1; m:= m Div 10; { Inc(k) } End; Writeln('В числе ',n,' - ',k,' цифр!'); Readln; End. TP

Для программной реализации в Turbo Pascal 7.0 циклических процессов с неизвестным числом повторений существует еще один оператор оператор цикла с постусловием, который имеет следующий вид: Repeat ; ; Until ; где Repeat (повторять), Until (до тех пор, пока …)

Отличие Отличие этого оператора от оператора цикла с предусловием: проверка условия производится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова Begin и End не нужны. Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае тело цикла повторяется еще раз, после чего снова проверяется соблюдение условия.

При описании циклов с постусловием необходимо принимать во внимание следующее: - перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено; - тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным; - условие окончания цикла должно быть в результате выполнено. - Для досрочного выхода из цикла используют в Turbo Pascal 7.0 функции EXIT, BREAK.

Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину. Решение х, k соответствующие цена и количество товара, р заданная предельная сумма, s общая стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении:

program prim9; uses crt; var c,k,p,s:integer; begin clrscr; write('пред сумма = ');readln(p); s:=0; repeat writeln('цена тов и его кол-во ='); readln(c,k); s:=s+c*k; writeln('стоимость покупки =',s); until s>p; writeln('суммарная стоим. покупки > предел. суммы '); readln; end. TP

Самостоятельно Осуществите досрочный выход из цикла при условии, что Вы приобрели вещи на сумму Р/2. if (s>p/2) then break;

Алгоритм Евклида это алгоритм нахождения наибольшего общего делителя (НОД) двух целых неотрицательных чисел. Алгоритм Евклида нахождения НОД основан на следующих свойствах этой величины. Пусть х и у одновременно не равные нулю целые неотрицательные числа и пусть x >= y, тогда если у=0, то НОД(х,у) = х, а если уО, то для чисел х, у и r, где r остаток от деления х на у выполняется равенство НОД(х, у)=НОД(у, r). Например, пусть х=48, а у=18, найдем их наибольший общий делитель.

XY Результаты 4818x>y 48 mod 8=1218xyНОД(12,18)=НОД(12,6) 12 mod 6=06x=0НОД(12,6)=НОД(0,6) 06 НОД(0,6)=6

Program prim3; uses crt; Var х, у: Integer; Begin clrscr; Вводим два целых неотрицательных числа. Writeln('x:=,y:=');Readln(x,y); Repeat If x>y Then x:=x Mod у Else y:=y Mod х; До тех пор, пока одно из чисел не станет равно нулю. Until (х=0) Or (y=0); Вывод НОД - без условного оператора, так как одно из чисел равно нулю. Writeln('НОД=',х+у)); Readln; End. TP

Домашнее задание. Дана последовательность операторов: а:=1; b:=1; while a+b

Цель урока: Показать сходство и различие операторов цикла с предусловием и постусловием в языках программирования QBasic и Turbo Pascal 7.0. План урока: 1. Проверка домашнего задания. 2. Вложенные циклы. 3. Решение задач. 4. Домашнее задание.

Проверка домашнего задания 1.1 Дана последовательность операторов: а:=1; b:=1; while a+b

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

Например. Даны натуральные числа п и k. Составить программу вычисления выражения 1k+2k+...+nk. Решение Для вычисления указанной суммы целесообразно организовать цикл с параметром i, в котором, во- первых, вычислялось бы очередное значение y=ik и, во-вторых, осуществлялось бы накопление суммы прибавлением полученного слагаемого к сумме всех предшествующих (s= s+y). Вложенные циклы

Program Prim1; uses crt; Var n, k, y, i, s, m: Integer; Begin clrscr; Writeln ('n= k='); ReadLn(n, k); s:=0; For i:=1 To n Do Begin y:=1; For m:=1 To k Do Begin Нахождение степени k числа i y:= y*i; End; Нахождение промежуточной суммы. s:=s+у; End; WriteLn(' Отвem: ',s); Readln; End. TP

Модифицировать предыдущую программу так, чтобы она вычисляла сумму nn. Решение Данная задача отличается от предыдущей тем, что показатель степени очередного слагаемого совпадает со значением ее основания, следовательно, параметры внутреннего цикла (цикла, в котором вычисляется очередное слагаемое) совпадают с параметрами внешнего цикла. For m:=1 To i Do

Пример. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову 5 рублей, за теленка полтинник (0,5 рубля), если на 100 рублей надо купить 100 голов скота. Решение Обозначим через b количество быков; k количество коров; t количество телят. После этого можно записать два уравнения: 10b+5k+0.5t=100 и b+k+t=100. Преобразуем их: 20b+10k+t=200 и b+k+t=100. На 100 рублей можно купить: не более 10 быков, т.е. 0

Program prim3 uses crt; Var b, k, t: Integer; Begin clrscr; For b:=0 To 10 Do For k:=0 To 20 Do For t:=0 To 200 Do If (20*b+10*k+t=200) And (b+k+t=100) Then WriteLn('Быков ',b,'коров ',k,' телят ',t); Readln; End. TP

Написать программу, которая находит и выводит на печать все четырехзначные abcd, числа a, b, c, d различные цифры, для которых выполняется: abcd=a+b+c+d. Решение Задачу можно решать несколькими способами. Одним из возможных способов является перебор всех четырехзначных чисел и проверка для каждого из них выполнения условий. Попробуем сократить перебор, для этого преобразуем второе условие: 10a+b-(10c+d) = a + b + c + d; 9(a-c)=2(c+d); (a-c)/(c+d)=2/9 Проанализировав первое условие, получаем, что а=с+2, d=9-c, следовательно 0

Program Prim4; uses crt; Var a, b, c, d: Integer; Begin clrscr; For c:=0 To 7 Do Begin a:=c+2; d:=9-c; For b:=0 To 9 Do Begin If (bc) And (ba) And (bd) Then Write (a, b, c, d'); Writeln End; Readln; End. TP

Если мы сложим все цифры какого-либо числа, затем все цифры найденной суммы и будем повторять много раз, мы, наконец, получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа равен 2 ( =29; 2+9=11; 1+1=2). Составим программу для нахождения цифрового корня натурального числа.

Решение Сколько переменных потребуется для решения задачи, какого типа будут эти переменные? Всегда ли необходимо вычислять сумму цифр числа (а если введенное число является однозначным)? Вычислим сумму цифр числа: для этого будем выделять цифры числа и увеличивать текущую сумму. Какую конструкцию необходимо использовать для этого? В результате выполнения цикла мы получили число. Является ли оно однозначным (корнем данного числа)? Какую конструкцию необходимо использовать для нахождения корня числа? Какие действия должна выполнять программа внутри этой конструкции? Программа, вычисляющая корень данного числа, может выглядеть следующим образом:

Program prim5; uses crt; Var n,k,s: Longint; Begin clrscr; Writeln(' число='); Readln(n); s:=n; Пока сумма является двузначным числом. While s>9 Do Begin k:=s; s:=0; Вычисляем сумму цифр числа. Repeat S:=s+k Mod 10; k:=k Div 10; Until k=0; End; Writeln(' цифр. корень числа ',n, равен ',s); Readln; End. TP

Домашнее задание Что будет выведено на экране монитора после выполнения следующего фрагмента программы: а:=28; For i:=1 То a div 2 Do Begin if a mod i =0 then Writeln(i); End; Решение какой задачи выражает этот фрагмент программы?

Контрольная работа 1 Вариант 1 1. Дано натуральное число: (a) найти сумму цифр этого числа; (b) верно ли, что число начинается и заканчивается одной и той же цифрой. 2. Найти все трехзначные числа, такие, что сумма цифр равна А, а само число делится на В (А и В вводятся с клавиатуры). 3. Дано натуральное число. Приписать к нему такое же число.

Вариант 2 1. Дано натуральное число: (a) найти произведение цифр числа; (b) верно ли, что в данном числе нет данной цифры А (цифру А вводить с клавиатуры). 2. Найти все трехзначные числа, которые при увеличении на 1 делятся на 2, при увеличении на 2 делятся на 3, при увеличении на 3 делятся на 4, а при увеличении на 4 делятся на Из данного натурального числа удалить все цифры А (А вводится с клавиатуры).

Вариант 3 1. Дано натуральное число: (a) найти количество цифр данного числа; (b) верно ли, что данное число заканчивается на нечетную цифру. 2. Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В (А и В вводятся с клавиатуры). 3. Найти все трехзначные симметричные натуральные числа из промежутка от А до В (А и В вводятся с клавиатуры).

Вариант 4 1. Дано натуральное число: (a) найти количество четных цифр числа; (b) верно ли, что данная цифра А встречается в числе более двух раз (А вводить с клавиатуры). 2. Найти все четырехзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и Найти количество различных цифр данного натурального числа

Ответы к контрольной работе 1 Вариант 1 N=121, сумма равна 4, верно. А=15, В=17, 357, 663,816 45, 4545 Вариант 2 А=5, N=121, нет 121, 181, 241,301, 361, 421, 481, 541, 601, 661, 721, 781, 841, 901, 961 N=1234, А=3, N=124

Вариант 3 N=1235, К=4, да А=17, В=5, 395, 485, 575, 665, 755, 845, 935 А=478, В=535, 484, 494, 505, 515, 525, 535 Вариант 4 N=12242, А=2, цифра 2 встречается более двух раз. 1185, 1458, 1728, 3186, 3456, 3726, 5184, 5454, 5724, 7182, 7452, 7722, 9180, 9450, 8720 N=13234, различных цифр 4.

Контрольная работа 2 Вариант 1 1. Найти количество делителей натурального числа. Сколько из них четных? 2. Найти все натуральные числа а, b и с из интервала от 1 до 20, для, которых выполняется равенство: a2+b2=с 2. Вариант 2 1. Найти сумму нечетных делителей натурального числа. 2. Найти все равновеликие прямоугольники, стороны которых выражены целыми числами а и b, а площадь равна S (а и b принадлежат интервалу от 1 до 20, а S вводится с клавиатуры).

Вариант 3 1. Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N (N вводить с клавиатуры). 2. Найти все натуральные числа а, b и с из интервала от 1 до 20, для которых выполняется равенство: а+b2=с 2. Вариант 4 Найти количество делителей натурального числа, больших К (К ввод. с клавиатуры). Найти все такие тройки натуральных чисел х, у и z из интервала от 1 до 20, для которых выполняется равенство: х 2 у =z2.

Ответы к контрольной работе 2 Вариант 1 1. N=24, К=7, четных , 4, 5 4, 3, 5 5, 12, 13 6, 8, 10 8, 6, 10 8, 15, 17 9, 12, 15 12, 5, 13 12, 9, 15 12, 16,20 15, 8, 17 16, 12, 20. Вариант 2 1. N=27, нечетных S=42, 3,146,77,614,3

Вариант 3 N=9, 49, 80, 112, 162, Вариант 4 N=196, К=6, количество делителей больших К пять. Это 7, 14, 28, 49, 98. 2,3,13,5,2 3,8,14,7,3 4,12,2 4,15,1 5,9,4 5,16,3 6,4,5 6,20,4 7,13,6 8,15,7 9,17,8 10,19,9