Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Лабораторная работа №2.2. Программирование разветвляющихся алгоритмов




Цель работы: научиться правильно использовать условный оператор if; научиться составлять программы решения задач на разветвляющиеся алгоритмы.

 

Общие сведения.

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

Перед выполнением работы необходимо ознакомится с правилами записи логических выражений, операций сравнения, операторов IF, CASE, READ.

Пример

Пример1: Дано действительное а. Для функций f(a), график которой представлен на рисунке, вычислить f(a).

Этапы решения задачи:

1. Математическая модель: функция вычисляется по следующей формуле

2. Составим схему алгоритма


Детализируем блок "Определяем к какому промежутку относится x."


Добавим блоки вычисления функции на каждом из промежутков:

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


Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.

Program example1;    var a, f:real;    begin        write('Введите a> '); readln(a);           if a<-1 then f:= -a-1 else             if (a>=-1) and (a<0) then f:= a+1 else             if (a>=0) and (a<1) then f:= -a+1 else f:= a+1;           writeln('F= 'f);    end. Контрольные вопросы.

1. Какие команды текстового редактора вы знаете?

2. Что такое блок текста и как его выделить?

3. Какие операторы используются для программирования разветвлений?

4. Как выполняются операторы перехода?

5. Какую из функций: Sin(x), Abs(x), Trunc(x) можно заменить условным оператором if x<0 then x := -x?

 




Список индивидуальных заданий.

Задача 1. Проверить принадлежит ли точка, заданная координатами, заштрихованной области. Вывести на экран TRUE или FALSE.

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


 


Вариант Задание 1 Задание 2
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.




Лабораторная работа №3. Программирование циклических алгоритмов

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

Общие сведения.

Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений этих операторов может быть задано в явной (цикл с известным заранее числом повторений) или неявной (цикл с неизвестным заранее числом повторений) форме.

Перед выполнением работы необходимо изучить различные схемы организации циклов и операторы FOR, WHILE, REPEAT.

Пример1: На промежутке от 1 до M найти все числа Армстронга. Натуральное число из n цифр называется числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу.

 

Этапы решения задачи:

1. Математическая модель: x  [1;M], x=

2. Составим блок схему программы:

 

 

Распишем составные части блока"Находим все числа Армстронга на заданном промежутке и печатаем их"


Опишем блок "Подсчитываем сколько цифр в числе i"

Опишем блок "Проверяем, является ли i числом Армстронга"

Дальнейшая детализация не требуется, запишем блок-схему целиком:

Дальнейшей детализации не требуется, переведем программу на язык Паскаль.

PROGRAM Primer_1; var i,k,s,p,n: Integer;    BEGIN      Write('Введите M '); Readln(m);           For i:=1 to M do         begin           s:=0; k:=i; n:=0;           While k<>0 do             begin k:=k DIV 10; n:=n+1 end;               k:=i;               While k<>0 do               begin p:=k MOD 10; k:=k DIV 10;                 If p<>0 then s:=Trunc (s+Exp(n*Ln(p)))               end;               If s=f then WriteLn (f)  end; END. Контрольные вопросы

1. Как записывается и как работает оператор FOR?

2. Для организации каких циклов применим оператор FOR?

3. В чем отличие оператора WHILE от оператора REPEAT?

4. Как программируются циклические алгоритмы с явно заданным числом повторений цикла?

5. Как программируются циклические алгоритмы с заранее неизвестным числом повторений цикла?

6. Напишите оператор цикла, который не выполняется ни разу.

7. Напишите оператор цикла, который выполняется неограниченное число раз.

8. Замените оператор "Repeat A Until B" равносильным фрагментом программы с оператором While.

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 568.

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