скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

                                  

Для отработки составления блок схем с  ветвлением я  рассмотрел несколько алгоритмов и составил к ним блок схемы:

А) Присвоить х значение суммы углов А и С Четырёхугольника ABCD.

Присвоить y значение суммы углов B и D четырёхугольника ABCD.

Если х=у, то:

Построить серединный перпендикуляр к отрезку AB.

Построить серединный перпендикуляр к отрезку BC.

Найти пересечение построенных перпендикуляров.

Иначе:

Сообщить “Построение невозможно”.

Конец ветвления.

Б) Присвоить х значение суммы сторон AB и CD четырёхугольника ABCD.

Присвоить у значение суммы сторон BC и AD четырёхугольника ABCD.

Если х=у, то:

Построить биссектрису угла А.

Построить биссектрису угла В.

Найти пересечение построенных биссектрис.

Иначе:

Сообщить “Построение невозможно”.

Конец ветвления.

  Овал: НачалоА)


 Б)  


               


   II. Ветвление в Паскале

2.1 Языки программирования.

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

         Современные компьютеры не настолько совершены, чтобы понимать программы, записанные на каком – либо употребляемой человеком языке – русском, английском, японским… Команды, предназначенные для ЭВМ, необходимо записать в понятной её форме. С этой целью применяются языки программирования – искусственные языки, алфавит, словарный запас и структура которых удобны человеку и понятнее компьютеру.

         В самом общем смысле языком программирования называется фиксированная система обозначений и правил для  описания алгоритмов

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

         Исходя из этого все языки программирования делятся на языки низкого, высокого и сверхвысокого уровня.

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

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

         Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспринимаемом виде. Отличной особенностью этих языков является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определённого класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгон, Паскаль, Си. Программа на языках высокого уровня записывается системой обозначений, близкой человеку (например, фиксированным набором слов английского языка, имеющих строго определённое назначение). Программу на языке высокого уровня проще понять и значительно легче отладить.

         К языкам программирования сверхвысокого уровня можно отнести Алгон-68, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной  и конкретных программ.  Абстрактная программа создаётся программистом, конкретная выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически ( а в идеале семантически) конкретную программу. Язык APL относят к языкам свервысокого уровня за счёт введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.

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

2.2 Язык программирования Паскаль.

Язык программирования Паскаль (назван в честь выдающегося французского математика и философа Блеза Паскаля (1623 – 1662)), разработан в 1967 – 1971гг. Никлаусом Виртом, профессором, директором института информатики Швейцарской высшей политехнической школы. Язык Паскаль, созданный первоначально для обучения программированию как систематической дисциплине, скоро стал широко использован для разработки программных средств в профессиональном программировании.

         Широкой популярностью Паскаля среди программистов способствовали следующие причины:

- Благодаря своей компактности, удачному первоначальному описанию Паскаль оказался достаточно лёгким для обучения.

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

- Язык Паскаль позволяет чётко реализовать идеи структурного программирования и структурной организации данных.

- Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки и правильности программ.

- Применения языка Паскаль значительно подняло “планку” надёжности разрабатываемых программ за счёт требований Паскаля к описанию используемых в программе переменных при компиляции без её выполнения.

- Использование в Паскале простых и гибких структур управления: ветвлений, циклов.

                                        2.3 Условный оператор в Паскале.

 

Условные операторы предназначены для выбора к исполнению одного из возможных действий ( операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, т.е. отсутствовать) В качестве условий выбора используется значение логического выражения. В Турбо Паскале имеются два вида условных операторов: if иcase.

         Оператор условиа if. Оператор условия if является одним из самых популярных средств, имеющих естественный порядок выполнения операторов программы. Синтаксическая диаграмма оператора if выглядит таким образом:

Операторы условия if выполняются следующим образом. Сначала выражается выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение выражения есть true (истина), выполняется <оператор 1>, указанный после слова Then (то). Если результат вычисления выражений в условии естьFalse (ложь), то выполняется <оператор 2>. Во втором – если результат выражения true, то выполняется <оператор>, если false – оператор, следующий сразу за оператором if. Операторы if могут быть вложенными.

Read (Ch);

If Ch=’N’ then parol:= True

Else Parol := False;

Read (x);

If Parol = True then

If x = 100 then Writeln (‘пароль и код правельны’)

Else begin

Writeln (‘Ошибка в коде’);

End;

В данном примере с клавиатуры считывается значение переменной символьного типа Ch. Затем проверяется условие Ch=’N’. Если оно выполняется, то переменной Parol булевского типа присваеватся значение True, если условие не выполняется, False. Затем с клавиатуры считывается значение кода  Х. Далее оператор проверяет условие Parol = True. Если оно имеет значение True, то выполняется проверка введённого пароля оператором if X=100. Если условие Х=100 имеет значение True, то выводится сообщение “Пароль и код правельны”, и управление в программе передаётся на оператор, следующий за словом end, если оно имеет значение False, выполняется соствной оператор, стоящий после слова else, который выводит на экран видеомонитора сообщение “ошибка в коде”, и вызывает стандартную процедуру Halt(1) для остановки программы.

2.3.1    Составной оператор (оператор варианта).

 

         Условный оператор позволяет осуществить ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия. Если для переменной необходимо осуществить ряд действий, зависящих от других условий, то надо записывать либо вложенные условные операторы, либо несколько операторов подряд. Для такой операции удобно использовать оператор варианта.

Вход в структуру содержит вычисление или ранее полученное значение переменной (индекса варианта). Это значение может совпасть с меткой, стоящей перед оператором на одной из ветвей переключаются. В таком случае выполняется оператор, помеченный этой меткой, и происходит выход из структуры. Оператор бывает простым или составным, ограниченым операторными скобками beginend;  Если значение индекса варианта не совпало ни с одной из меток, то выполняется оператор с номером n + 1 из строки else. Если оператор варианта содержит строку else , то это - полная форма оператора, если такой строки нет, то используется сокращённая форма оператора варианта.

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

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

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

Рассмотрим простой пример задачи из курса алгебры. Требуется построить алгоритм вычисления значений функции у = |х|. Она задаётся соотношением:

              

                                   Y =

    

На языке Паскаль оператор варианта имеет вид:

 

Case индекс варианта of

Метка 1: оператор 1;

Метка 2: оператор 2;

Метка n: оператор n;

Else оператор n + 1

End;

Пример:

Составить программу-решатель.

Дано: молярная масса вещества М, плотность данного вещества Р, масса R или объём V. Требуется найти число молекул К: 1) в единице массы вещества; 2) в теле заданной массой: 3) в единице объёма вещества; 4) в теле заданным объёмом. Для решения задачм воспользуемся формулой:

                                      K = (NА/M)R,

Где NA = 6,022 * 10²³г/моль – число Авогадро.

 

На основании этой формулы получаем расчётные формулы для программы:

1)K=NA/M; 2)K=NAR; 3)K=NAPV/M 4)K=NAP/M.

Программа имеет вид:

Program E20;

Const NA = 6.022 E20;

Var N: integer; M, R, P, V, K: real;

Begin

Writeln (‘зная постоянную Авогадро, Плотность P данного вещества’);

Writeln (‘и его молярную массу М, можно найти число молекул в’);

Writeln (‘1. в единице массы вещества’);

Writeln (‘2. в теле массой R’);

Writeln (‘3. в единице объёма’);

Writeln (‘4. в теле объёмом V’);

Write (‘введите номер решающей задачи’);

Readln (N);

Write (‘введите исходные данные: М =’);

Readln (M);

Case N of

1: K: = NA / M;

2: begin

Write (‘R = ‘);

Readln (R);

K: = NA *R/M;

End;

3: begin

write (‘плотность вещества Р = ’);

Readln (P);

Write (‘V = ‘);

Readln (V);

K: = NA *P*V/M;

End;

4: begin write (‘плотность вещества P = ’);

Readln (P);

K: = NA *P/V

End;

End;

Write (‘число молекул K = ’, K’);

End.

                                   2.3.2    Вложенные условия.

  

  Существуют задачи в которых по одной из ветки ветвления нужно рассмотреть ещё одно условие.

Рассмотрим задачу: сравнить 3 целых числа и вывести на печать максимальное.

Program chisla;

Var a, b, c: integer;

Begin

Writeln (‘Введите три числа’);

Read (a, b, c);

If a<b then

If a>c then writeln (‘ максимально число ’, a)

Else if b>c then writeln (b  максимально число’, b)

Else writeln (‘c максимальное число’, c);

End.

Вот блок – схема данной задачи:



                               2.3.3  Логические выражения.

         Алгоритм решения квадратного уравнения содержит проверку условия D<0. Два значения, D и 0, связаны отношением < - меньше. Если условие выполняется то говорят что соответствующее выражение истинно, если не выполняется то ложь.

         Речь идёт о логическом выражении. Примером логических выражений могут служить математические отношения связанные знаками >, <, =,  логические выражения имеют два значения True( истина) и False (ложно). Логические выражения такие могут иметь логические операции: отрицания (NOT), конъюнкций (OR) и дизъюнкции (AND).

        

Логические операции имеют следующую таблицу истинности:

A B Not (A) (A) AND (B) (A) OR (B)
True True False True True
True False False False True
False True True False True
False False True False False

Пусть требуется определить, принадлежит ли точка с координатой x отрезку [a; b]. Если записать это условие двойным неравенством, то читать его надо  так: x меньше либо равен b и больше либо равен a (a<x<b). Отношение “меньше или равно” в Паскале записывается двумя знаками. Аналогично записывается и “больше либо равно”. Однако в Паскле нельзя записывать двойное неравенство. Используя логическую операцию and (и), запишем:

(x>=a) and (x<= b).

Отношения, между которыми стоит логическая операция, заключаются в круглые скобки.

Имеется прямоугольное отверстие со сторонами a и b и кирпичь с рёбрами x, y z. Требуется составить условие прохождения кирпича в отверстие.               

Кирпич пройдёт в прямоугольное отверстие, если выполняется сложное условие:

(a>=x) and (b>=y) or

(a>=y) and (b>=x) or

(a>=x) and (b>=z) or

(a>=z) and (b>=x) or

(a>=y) and (b>=z) or

(a>=z) and (b>=y)

 Для трёх граней шесть условий получается потому, что можно каждую грань повернуть на 90 и проверить для каждой грани два случая.

Определить принадлёжность точки фигуре. Пусть фигура задана ограничивающими её прямыми.                        

Для каждой прямой определим полу плоскость, в которой находится фигура- треугольник АВС. Полуплоскость задаётся неравенством.

         Полуплоскость, находящаяся выше от оси х определяется неравенством y>0.

Полуплоскость, находящаяся справа от прямой, соединяющей точки (-1,0) и (0,2), задаётся неравенством y-2x-2<0.

Полуплоскость, находящаяся слева от прямой, соединяющей точки (1,0) и (0,2), задаётся неравенством y+2x-2<0.

         Условие принадлежности точки (x,y) фигуре :

(y>0) and (y-2*x-2<0) and (y+2*x-2<0).

         Приведём пример программы определяющая существования треугольника со сторонами a, b и c. Условие существования треугольника известно из геометрии: сумма двух любых сторон должна быть больше третьей. Следовательно, для всех сторон условие “сумма двух больше третьей” должно выполняться.

Program e4;

Var a, b, c: real;

Begin

Writeln (‘дите длины трёх сторон треугольника’);

Readln (a, b, С);

Write (‘треугольник со сторонами ’, a, b, c);

If (a+b>c) and (b+c>a) and (a+c>b)

Then writeln (‘существуют’)

Else writeln (‘не существуюет’);

Readln

End.


Ш . Технологический пакет к урокам информатики по теме “Ветвление в Паскале”

Задачи с ветвлением и их решение.

Program vetvlenie;

Var t: integer;

Begin

Writeln ('Введите температуру сегодня');

Readln (t);

If t<=-30

Then

Writeln (‘Не идти в школу ')

Else writeln (‘Идти в школу');

End.

Программа показывает идти ученику сегодня в школу или нет. С клавиатуры он вводит сегодняшнюю температуру, и если она меньше -30, то не идти в школу, а если больше то выводится сообщение о том чтобы идти в школу. Теперь попробуйте написать программу:

Сделать так чтобы программа выводила сообщение о том у кого больше денег и у кого меньше.

Переделать программу так чтобы вместо денег выводилось сообщение о том кто больше попрыгал. Значения так же вводятся с клавиатуры.

Рассмотри задачу: Для модельного агентства выбираются девушки с объёмами 90 (грудь), 60 (талия), 90 (бёдра). Составить программу для отбора девушек по этим параметрам.

Овал:        Начало


 

Блок-схема: данные:       ABC



Вопросы  и задачи по  всей теме.

Составьте программу, которая из двух вводимых вами целых чисел печатает заключение о том, какое число больше

Составьте программу, проверяющую, верно ли утверждение, что введённое вами число является чётным.

Составить программу, определяющую, входит ли введенная вами цифра в десятичную запись введенного вами трёхзначного числа, и печатуящая сообщение о том, входит ли эта цифра в запись числа или нет.

Напишите программы на Паскале для решения следующих задач.

Даны три числа a, b, c. Выясните верно ли a<b<c. Ответ получите в текстовой форме: верно или не верно.

Даны положительные числа a, b, c, x. Выясните, пройдёт ли кирпич с рёбрами a, b, c в квадратное отверстие со стороной x.

Даны три действительных числа. Выберете те из них, которые принадлежат отрезку [1;3].

Присвойте величине а значение наибольшего из трёх заданных чисел.

Даны два числа. Выведите первое из них, если оно больше второго, и оба числа, если это не так.

Проверьте, если среди трёх заданных чисел равные.

Даны три действительных числа. Найдите наибольшее значение их суммы и произведения.

Напишите программу – модель анализа пожарного датчика в помещении, которая выводит сообщение «пожарная ситуация», если температура  (в нашей модели она будет вводиться с клавиатуры) в комнате превысила 600 .

 

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

Составьте программу, проверяющую, верно ли утверждение, что введённое целое число делится без остатка на 3.

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

Составьте программу, определяющую, входит ли введённая вами цифра в десятичную запись введённого вами трёхзначного числа, и печатающую сообщение о том, входит ли эта цифра в запись числа или нет.

Составьте программу, которая по трём введённым вами числам определит,

могут ли эти числа быть длинами сторон треугольника, если да, то какой получился треугольник с данными длинами сторон (прямоугольный, остроугольный, тупоугольный).

Составьте программу, определяющую, лежит ли точка с указанными координатами X, Y на  окружности радиуса R с центром начала координат.

Составьте программу нахождения корня уравнения ax+b=c, где a, b, c – данные числа.

Даны три действительных числа. Возвести в квадрат те из них, значения которых не отрицательны.

Даны три действительных числа. Выбрать из них те, которые принадлежат отрезку {-5;3}.

Известны результаты соревнования трёх лыжник4ов. Выбрать результат победителя и занявшего третье место.

Дано натуральное четырёхзначное число. Верно ли, что все четыре цифры различны?

Дано натуральное число n(n<100), определяющее возраст человека (в годах). Дать для этого числа наименование «год», «года» или «лет»: например, 21 год, 44 года, 65 лет и т.д.

Тест.

Что такое алгоритм?

А) последовательность выполнения действий.

Б) составление программы.

В) Не знаю.

Что такое Блок-схема?

А) Рисунки квадратиков.

Б) графическое изображение алгоритма.

В) Не имеющие смысла геометрические фигуры.

Для чего нужно ветвление в паскале?

А) Для решения более сложных задач.

Б) Для того чтобы больше подумать над решением задачи.

В) я не знаю.

Какое из этих языков программирования не относится к высшему уровню?

А) Паскаль

Б) Бейсик

В) Машинно – ориентированный

Где чаще всего используется язык программирования Паскаль?

А) Дома

Б) В хакерских группировках

В) В школе и других учебных заведениях.

Каких алгоритмов не существует?

А) Корявых

Б) линейных

В) С ветвлением.

Каких операторов не существует?

А) Условный.

Б) Заумный.

В) Составной.

Почему язык Паскаль такой популярный?

А) Он простой в обучении и изучается в школах

Б) Очень сложный Язык программирования и это мне нравится.

В) Я  не знаю.

С какой командой начинается программа?

А) начало

Б) var

В) begin

Как выглядит оператор присваивания?

А) :=

Б) :()

В) =;

Что указывается в операторах?

А) условие

Б) переменные

В) начало и конец.


Заключение.

Цель моей работы достигнута: я рассмотрел различные виды алгоритмических конструкций, изучил конструкцию ветвления, научился решать задачи с ветвлением, подобрал и составил сам задачи, тесты и др. задания.

В дальнейшем я бы хотел продолжить свою работу, рассмотрев в Паскале другие конструкции. Так же мне хотелось бы узнать, как описывается конструкция ветвления в других языках программирования.(C++, Delphi)

126 (6-16)

                                  Список литературы

Введение в програмирование: Учеб. Пособие для уч. Сред.и ст. шк. Возраста / Авт.-сост. В.А. Гольденберг.- Мн.: ООО”Харвест”, 1997.- 528 с. (библиотека школьника).

Бондарев В.М., Гублинский В.И., Качко Е.Г..

Основа програмирования/ худож. – оформитель С.А. Пяткова. – Харьков: Фолио; Ростов Н/Д: Феникс,  1997. –368с.

Турбо Паскаль 7.0 – К.: торгово – издательское бюро BHV, 1996 – 448с.: ил. Т. Рюттяна.

Игошев А.Д. Матинин Е.Г. Express Pascal. Учебное пособие для средних уч. Заведений.

Кузницов А.А. Патапова Н.В. Основы информатики. 8-9 кл.: Учеб. Для общеобразовательных учеб. Заведений 2001 176с.:ил.


Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.