Краткие теоретические сведения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Краткие теоретические сведения



Лабораторная работа №6

Алгоритмизация

ЦЕЛЬ РАБОТЫ: Приобретение навыков построения схем линейных, разветвляющихся, циклических алгоритмов.

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Понятие алгоритма. Свойства алгоритма.

Алгоритм - это последовательность действий, приводящих к требуемому результату.

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

1) Дискретность - процесс преобразования данных, т.е. на каждом шаге алгоритма выполняется очередная одна операция;

2) Результативность - алгоритм должен давать некоторый результат;

3) Конечность - алгоритм должен давать результат за конечное число шагов;

4) Определенность - все предписания алгоритма должны быть однозначны, понятны пользователю;

5) Массовость - алгоритм должен давать решения для целой группы задач из некоторого класса, отличающихся исходными данными;

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

Формы записи алгоритмов

На практике наиболее распространены следующие формы представления

алгоритмов:

· словесная (запись на естественном языке);

· графическая (изображения из графических символов);

· псевдокоды (полуформализованные описания алгоритмов на услов-

ном алгоритмическом языке, включающие в себя как элементы языка

программирования, так и фразы естественного языка, общепринятые

математические обозначения и др.);

· программная (тексты на языках программирования).

Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Словесный способ не имеет широкого распространения, так как такие описания:

· строго не формализуемы;

· страдают многословностью записей;

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

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

Название символа Обозначение Выполняемая функция
Начало/конец   Начало или конец алгоритма
Процесс вычислений   Выполняет вычисли-тельное действие или группу действий
Логический блок   Выбор направления выполнения алгоритма в зависимости от условия  
Ввод /вывод   Отображение данных    
Граница цикла   Отображает начало и конец цикла  
Предопределенный процесс   Выполнение операций в подпрограмме
Соединитель   Указание связи между прерванными линиями в пределах одной страницы
Комментарий _ _ Пояснительная запись  

 

Схема алгоритма выстраивается в одном направлении: либо сверху вниз, либо слева направо. Все повороты соединительных линий выполняются под углом 90 градусов.

Общими правилами при построении схем алгоритмов являются следующие:

· В начале алгоритма должны быть блоки ввода значений входных данных.

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

· В конце алгоритма должны располагаться блоки вывода значений выходных данных.

· В алгоритме должен быть только один блок начала и один блок окончания.

Связи между блоками указываются направленными или ненаправленными линиями.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Понятие алгоритма

2. Свойства алгоритмов

3. Способы записи алгоритмов

4. Формы представления алгоритмов

5. Алгоритмизация линейных вычислительных процессов

6. Алгоритмизация ветвящихся вычислительных процессов

7. Алгоритмизация циклических процессов

Индивидуальные задания

1. Построить схему алгоритма  где

2. Построить схему алгоритма

3. Построить схему алгоритма

4. Построить схему алгоритма  

5. Построить схему алгоритма

6. Построить схему алгоритма

7. Построить схему алгоритма

8. Построить схему алгоритма:

9. Дано натуральное n. Построить схему алгоритма:      

10.  Дано натуральное n. Построить схему алгоритма:  

11. Дано натуральное n. Построить схему алгоритма:

12. Задан одномерный массив из n элементов. Найти среднее арифметическое всех элементов массива.

13. Задан одномерный массив из n элементов. Найти наименьший элемент в массиве.

14. Задан одномерный массив из n элементов. Найти количество положительных элементов массива.

15. Задан одномерный массив из n элементов. Найти количество отрицательных элементов массива.

16. Задан одномерный массив из n элементов.Определить, сколько раз встречается число 7 среди элементов массива.

17. Задан одномерный массив из n элементов.Определить, сколько элементов массива меньше, чем число 6.

18. Задан одномерный массив из n элементов.Определить, сколько элементов массива больше, чем число 3.

19. Задан одномерный массив из n элементов.Найти сумму всех неотрицательных элементов массива.

20. Задан двухмерный массив. Найти сумму всех элементов массива, имеющих четные индексы.

21. Задан двухмерный массив. Найти наибольший из элементов массива, имеющих нечетные индексы.

22. Задан двухмерный массив. Найти среднее арифметическое всех положительных элементов массива.

23. Задан двухмерный массив. Найти среднее арифметическое всех отрицательных элементов массива.

24. Задан двухмерный массив. Найти сумму элементов массива, превышающих число 5.

25. Задан двухмерный массив. Найти наибольший элемент в третьем столбце матрицы.

26. Задан двухмерный массив. Расположить все элементы матрицы в строку в порядке возрастания.

27. Задан двухмерный массив. Найти сумму всех положительных элементов матрицы.

 


 

Лабораторная работа №7

Пример 3.

Требуется установить значения переменных С и D в зависимости от состояния переменных А и В1, причем, если значение переменной А равно В1, то переменной С присваивается значение, равное сумме значений переменных А и В1,а переменной D- значение переменной В1. В случае, если значение переменной А не равно значению переменной B1, то переменной С присваивается значение, равное разности значений переменных А и В1,а переменной D - значение переменной В1,возведенное в квадрат.            

Cхема алгоритма и программа имеют следующий вид:                       

C=A-BI D=BI*BI  
C=A+BI D=BI
C,D
конец
A=BI
A,BI B B
Начало
                                                   PROGRAMC(INPUT, OUTPUT);

                                                             LABEL IØ;

                                                        VAR A,BI,C,D:REAL;

                                                   BEGIN

                                                             WRITELN(‘ВВЕСТИ A,BI’);

                                                             READ(A, BI);

                                                             IF A=BI THEN BEGIN

                                                             C=A+BI;

                                                             D=BI;

                                                             GOTO IØ;

                                                   ELSE BEGIN

        

        Рис.3                                                C=A-BI;

                                                             D=BI*BI;

                                                             END;

                                                   IØ: WRITE(‘C=’,C,’ ‘,’D=’,D);

                                                   END.                                                        

Оператор выбора варианта имеет вид:

CASE C OF NI: AI;N2:A2;….NN:ANEND;

Где С-выражение скалярного типа (но не вещественного); NI,N2,…,NN –метка операторов; AI,A2,…,AN – операторы.

Выполнение оператора начинается с вычисления значения выражения С. Затем выполняется тот оператор, метка которого совпала с полученным значением. Если же вычисленное значение выражение С не совпало ни с одной из меток, то предусмотрено появление сообщения об ошибке.

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

 

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

PROGRAM VES;                                                                                                                       

VAR I: INTEGER;

BEGIN

WRITELN(‘ВВЕСТИ I’);

READ(I);

WRITELN(‘I=’,I);

CASE I OF

1: WRITELN(‘ ВЫ ВВЕЛИ => 1’);

2: WRITELN(‘ ВЫ ВВЕЛИ =>2’);

3: WRITELN(‘ ВЫВВЕЛИ =>3’);

4,5: WRITELN(‘ВЫ ВВЕЛИ=>4 ИЛИ 5’);

END;

 END.

Пример 6.

Используя условия примера 5 программу с изменением оператора цикла FOR.

PROGRAM SUM;

VAR X,Y: REAL;

I,N: INTEGER;

BEGIN

WRITELN(‘ВВЕСТИN,X ‘);

READ(N, X);

 Y:=Ø;

FOR I:=1 TO N DO

Y:= Y+ COS (I+SQR(X)/4);

WRITELN (‘N=’, N,’ ‘, ‘X=’,X);

WRITELN(‘Y=’,Y);

END.       

Оператор цикла WHILE позволяет организовать цикл, количество повторений которого зависит от включенного в него условия, т.е цикл с неизвестным числом повторений. Этот оператор имеет вид                                                                              WHILE LV DO

Где LV- логическое выражение;                                                                                                     S- простой или составной оператор.                                           Выполнение оператора начинается с проверки выражения LV. Если логическое выражение имеет значение TRUE, то выполняется оператор S. Выполнение оператора S продолжается до тех пор, пока значение выражения LV не станет равным FALSE. В этом случае уравнение передается оператору, следующему за оператором S. Если же выражение LV имеет значение FALSE при первоначальной проверке, то оператор S не выполняется ни разу. При этом, чтобы выйти из цикла, внутри его должно быть организовано изменение значений переменных, входящих в логическое выражение. Иначе оператор цикла будет выполняться бесконечное число раз.

Пример 7.                                                                                                                                      Составим программу, используя условия примера 5. Программа запишется в виде:

PROGRAM SUMWHL;

VARX,Y: REAL;                                                                                                      I,N:INTEGER;                                                                                         BEGIN                                                                                                             WRITELN(‘ВВЕСТИN,X’);                                                                                         READ(N,X);                                                                                                     Y:=Ø;                                                                                                                I:=1;                                                                                                        WHILE I<=N DO                                                                                  BEGIN                                                                                                              Y=Y+ COS(I+SQR(X)/4);                                                                                I:=I+1;                                                                                                 END;                                                                                                             WRITELN(‘N=’,N,’ ‘,’X=’,X);                                                                         WRITELN(‘Y=’,Y);                                                                               END.

Оператор цикла REPEAT также позволяет организовать цикл с неизвестным числом повторений. Такой оператор имеет вид:                                                       REPEATS                                                                                                                             UNTILLV                                                                                                                             где S – простой или составной оператор;                                                                    LV- логическое выражение.

Выполнение оператора REPEAT начинается с вычисления оператора S и продолжается до тех пор, пока не выполняется LV т.е. когда значение этого логического выражения равно FALSE. Это означает, что проверка LV проводится после каждой итерации и в случае принятия LV значения TRUE осуществляется выход из цикла. При использовании составного оператора S операторные скобки (BEGIN и END) не требуются. Кроме того оператор, стоящий перед словом UNTIL, не имеет после себя точку с запятой.

Пример 8.                                                                                                                                            Задан массив вещественных чисел, состоящий из десяти элементов. Требуется вывести четные элементы этого массива. Программа имеет вид:    

PROGRAM MAS;                                                                                

VAR I: INTEGER;                                                                                                  A: ARRAY[1…10] OF REAL;                                                                     BEGIN                                                                                                                     WRITELN(‘ ВВЕСТИМАССИВ(1..10)’);                                                              FOR I:=1 TO 10 DO;                                                                                                  READ (A[I]);                                                                                                    I:=0;                                                                                                         REPEAT                                                                                                 I=I+2;                                                                                                                WRITE (A[I]:5:2)                                                                                              UNTIL I>10;                                                                                              END.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Для успешного выполнения данной лабораторной работы студент должен:

−изучить теоретическую часть;

−согласно индивидуальному варианту составить схему алгоритма решения задачи;

−в соответствии со схемой составить программу решения задачи;

−выполнить решение задачи на персональной ЭВМ.

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

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Опишите оператор безусловного перехода.                                                           2. Опишите конструкцию условного оператора.                                

3. Для какой цели используются операторные скобки?                                           4. Опишите оператор выбора варианта.                                                                                  5. С использованием каких операторов могут быть организованы циклические структуры?                                                                                            6. В каких случаях используется оператор цикла со служебным словом DOWNTO?                                                                                                                                        7. Каких этапов требует организация цикла с помощью условного оператора? 8. С помощью каких операторов можно организовать цикл с неизвестным числом повторений?                                                                                                           9. Что означают служебные слова TRUEи FALSE?                                                10. Как изменяются параметры внешнего и внутреннего циклов?

                   5. ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ                                                            1. Вычислить значение

       X2+3, если х<0,

Z=  X- 0,8, если х>п/2,

       CosX, если 0≤Х≤П/2.                   

           

 

2. Вычислить значение

       a-b, если а>0,

Z=  а+b, если a=0,

       ab, если a<0

3. Вычислить значение                                                                                                  

       a/b, если а>0,

Z=  а*b, если a=0,

        a-b, если a<0

4. Z=a+b sin x/ x2-bx+0,5, еслих≥0

5. Вычислить значение                

X2+Y2, если X2+Y2< 1,

Z=  X+Y, если X2+Y2>1,

       0,8, если X2+Y2=1.              

6. Вычислить значение

a+ bx+cx2, если К=1,

Y=  d+cx+fx2, если К=2,

       g+ hx+tx2, в остальных случаях

7. Вычислить значение

Y= 18,9X2-1,6X+1,97, если X<0 и Z=9,75X2-0,35arctg x, если X≥0.

8. Вычислить значение

Z=a+b sin x/ x2-bx+0,5, еслих≥0.

9. Вычислить значение

Z= sinx/ x2 -√1+3x, если х≤0,5

10. Вычислить значение

Arctgx+y/1-xy, если xy<1,

Z=  3,14, если xy=1,

       3,14+ (x+y/1-xy), если xy>1.

11.  Вычислить значение

Y2-0,3, если y<0,

Z=  1, если 0≤y≤1,

       Y2+0,3, если y>1.

12.  Вычислить значение

Ai=XI/(2i), i=1,2,…,30.

13. Вычислить значение

Ai=(X2i SIN(Xi))/i2, i=1,2,…,30.

       13.Вычислить значение

Ai=((-1)i*Xi)/i(i+1)(i+2), i=1,2,…,30.

14.Вычислить значение

AI=(X2i*(i+3))/2i, i=1,2,…,30.

       15. Вычислить значение

AI=(XI*(i+2))/i+1, i=1,2,…,30.

       16. Даны вещественные числа Х,В и целое К (1≤K≤4). Вычислить z=5y2-b, где У вычисляется по формулам:

1) У=2Х                   2)У=Х2-3,5        3) У=Х+9,6           4)У=Х2/6, а значение Х трактуется как номер для вычисления У.

       17. Даны вещественные числа У, С и целое n(1≤n≤5). Вычислить Z=3 COS(X)/X+C, где Xвычисляется по формулам:

1) X=1,2 Y2                    2)X=3,5Y           3)X=1,5     4)X=ARCTG(Y)   5) X=6+0,5Y2, а значение nтрактуется как номер для вычисления Х.

       18. Дано целочисленное значение nи вещественные значения Х,У и Z. При n<0,n=0 или n>0 изменить соответственно значения Х на Х-0,5, У на У/3,5, а Z на Z2.

       19. Вычислить значение Уi=Xi+sinxi для всех 0≤Хi≤1, если Xi=Xi-1+h, X0=0 и h=0,1

       20. Все отрицательные компоненты вещественного вектора a(a1,a2,…,a10) заменить их квадратами.

       21. Дан вещественный вектор Х (Х12,….,Х10). Умножить на 2 компонента с нечетными номерами.

       22. Дан вещественный вектор b (b1,b2,….,b10). Все компоненты с четными номерами уменьшить на 0,5.

       23. Все компоненты вещественного вектора С (С12,…, С10), начиная с первой по порядку положительной компоненты увеличить в два раза.

       24. Вычислить n! для n=7.

       25. Присвоить переменной Tзначение “ 3”, если числа Х,У,Z равны “2”, если числа равны; “1”, если все числа различны.

       26. Определить количество тех членов последовательности

Ak=SIN(K2+C), K=1,2,….,10, которые удовлетворяют условию 0≤AK≤1/2.

       27. Определить значения последовательности {хi}из условия Хi+1=0,5Xi-1 –Xi2, Х1i=0,65 для i=3,4….10.

       28. Вычислить значение

Y=Xn/3! Для n=1,2,…10

       29. Вычислить значение

Y=(1)n/2n(2n-1) для n=1,2,….10.

       30. Вычислить значение

Y=2n/n2√x+n для n=1,2,….,10.

 


 


Из контрольной работы:

Часть 4

Лабораторная работа №6

Алгоритмизация

ЦЕЛЬ РАБОТЫ: Приобретение навыков построения схем линейных, разветвляющихся, циклических алгоритмов.

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 72; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.168.56 (0.116 с.)