Порядок выполнения лабораторной работы.



1. Ознакомление с заданием. Разработка алгоритма. Написание программы.

2. Ознакомление с интегрированной средой разработки (ИСР). Ввод программы. Устранение синтаксических ошибок.

3. Отладка программы. Получение и оценка результатов. Оформление отчета.

4. Защита лабораторной работы.

Варианты.

 

№ вар Исходные данные и константы Выражение для S № вар Исходные данные и константы Выражение для S
1. А=5, В=4.5 Вводить: С – действительное D – целое число S=A*C+B*D 11. D=2, C=4.3 Вводить: A – целое число B – действительное S=(A-D)*(C-B)
2. A=4, C=7.5 Вводить: D – действительное B – целое число S=A+D*B+C 12. C=2, D=5.4 Вводить: B – целое число A – действительное S=A*B*C-D
3. A=7, D=3.25 Вводить С – целое число B – действительное S=A*C*D+B 13. B=4, D=4.1 Вводить: A – целое число C – действительное S=D*A-C*B
4. B=3, C=7.1 Вводить A – целое число D – действительное S=A-D-C*B 14. A=10, D=3.3 Вводить: B – целое число C – действительное S=(A+C)*D-B
5. B=7, D=3.5 Вводить: C – целое число A – действительное S=A*D+B-C 15. C=7.2, D=1 Вводить: B – целое число A – действительное S=A*C+D-B
6. C=2, A=7.3 Вводить: B – целое число D – действительное S=B*C+A+D 16. C=4.3, B=4 Вводить: A – целое число D – действительное S=D*A+B*C
7. C=1, B=3.4 Вводить: D – целое число A – действительное S=B-C*A+D 17. C=3.7, A=7 Вводить: D – целое число B – действительное S=C*D-A+B
8. C=4, D=4.1 Вводить: A – целое число B – действительное S=B+A*D-C 18. B=14.3, A=2 Вводить: С – целое число D – действительное S=(D-A)*B-C
9. D=1, A=1.7 Вводить: C – целое число B – действительное S=(A-C)*B+D 19. B=7.7, C=3 Вводить: A – целое число D – целое число S=A-B+D*C
10. D=7, B=3.5 Вводить: С – целое число A-действительное S=(B+C-D)*A 20. B=4.1, D=3.3 Вводить: A – действительное C – действительное S=(A+D+C)*B

 


 

21. A=5.5, B=1.2 Вводить C – целое число D – действительное S=A*(C-D)*B 26. C=8.1, B=3.21 Вводить A – целое число D – действительное S=B*(A*D-C)
22. A=3.7, C=2.1 Вводить B – действительное D – действительное S=C-B*D-A 27. C=3, D=1 Вводить A – действительное B – действительное S=(D+A*B)*C
23 A=4.8, D=1.12 Вводить C – целое число B – действительное S=C*(B+A-D) 28. A=1, D=3 Вводить C – целое число B – действительное S=(C-D*B)*A
24. B=7.11, C=3.1 Вводить A – действительное D – действительное S=(A*C-D)*B 29. D=1, C=4 Вводить A – действительное B – действительное S=A*B*C-D
25. B=1.18, D=4.7 Вводить C – целое число A – действительное S=(B*C+A)*D 30. B=5, D=2 Вводить A – действительное C – действительное S=(D-A-C)*B

 

Пример лабораторной работы №1.

 

Исходные данные: K=4; L=7.4;

Вводить M – действительное; N – целое.

Вычислить S=K*(M-N)+2 L (N+M). Результат вывести на экран

 

 

Текст программы.

#include <stdio.h>

#include <stdlib.h>

#define K 4

void main()

{ const float     L=7.4;               /* тоже задание константы*/

/* объявления переменных*/

float M, S;/* Анализируя выражение видно, что S – действительное*/

int N;

printf(“Введите число М-“);/* Сообщение на экран*/

scanf(“% f”,& M)/* Ввод М*/

printf(“Введите число N-“);/* Сообщение на экран*/

scanf(“%d”,&N)/* Ввод N*/

S= K*( M- N)+2* L*( N+ M); /*Вычисление S по формуле*/

printf(“Результат-%7.3 f”, S);/*Вывод результата:комментарий+значение S*/

}/* Конец программы */

 

 

Тестовая последовательность.

Вводим контрольные значения M=5.5, N=2.

Результат -125.

 


9 Лабораторная работа №6
Ветвящиеся алгоритмические структуры. Математические функции из встроенной библиотеки.

Модернизировать задание первой лабораторной работы. Найти F по предложенному выражению, используя ранее найденное S. Результаты вычисления S и F вывести в одну строку на экран. Проверять возможность выполнить действие по нахождению F.

Порядок выполнения:

1. Разработка математической модели и алгоритма задачи. Разработка тестовых последовательностей данных. Написание программы.

2. Ввод и отладка программы.

3. Оформление и защита лабораторной работы.

Варианты.

№ вар Выражение для F № вар Выражение для F № вар Выражение для F
1 11 21
2 12 22
3 13 23
4 14 24
5 15 25
6 16 26
7 17 27
8 18 28
9 19 29
10 20 30

 

Пример лабораторной работы №2.

Вычислить , используя результаты примера к л.р.№1 .

1. Разработка математической модели.

F не всегда может быть вычислена. F не существует в следующих случаях:

а) S£0, тогда ln(S) – не существует. С учетом погрешности D можно говорить, что необходимо S>D, где D>0.

б) М=5 – деление на ноль, или с учётом возможных погрешностей |М-5|<D, где D - маленькое число. Примем D=0.001, что гораздо меньше 5.

в) Если N<0, а M=0 – то значение F также не существует.(отрицательная степень переводит в знаменатель – получаем деление на 0)

г) Следует учесть особенности вычисления степенной функции (если ее вычислять как это принято в C)       .

Функция pow не существует если M£0 и N-действительное., но в нашем случае оно –целое.

2. Разработка алгоритма.

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

 

3. Разрабатываем новый фрагмент программы, который интегрируем в предыдущую программу после вывода S

 

……………………………………………

 

void main()

{…………………………………

const float d=0.001;/*Задаем возможную погрешность */

float F;/*Дополнительная переменная*/

………

/*Новый фрагмент программы*/

if( S> d)/*Случай a*/

IF( fabs( M-5)> d)/*Случай б*/

  IF( ( N>0)|| ( fabs( M)>= d))/*Случай в*/

   {

     F=log(S)*pow(M,N)/(M-5);

    Printf(“ F=%12 e”, F);

  }/*Конец составного оператора*/

else printf(“ F – нет, деление на 0”) /*Случай в*/

else printf(“ F – нет, деление на 0”) /*Случай б*/

else printf(“ F – нет, S<0”) /*Случай а*/

}

4. Разработка тестовых последовательностей данных. Эти последовательности должны проверять все ветвления. В нашем случае:а) N=2, M=-10. Тогда S=-166.4 <0 и F – не существует;

б) N=2, M=5. Тогда F – не существует (деление на 0);

в) N=-2, M=0. Тогда и F – не существует и т. д. для всех ветвлений.


10 Лабораторная работа №7.
 Простые циклы

Найти все возможные значения S и F из лабораторной работы №2 для задаваемого диапазона и шага изменения указанной величины. Если величина целая, то и шаг целый. Решение задачи организовать с помощью операторов циклов.

Порядок выполнения работы .

1. Анализ задания. Разработка алгоритма и тестовых последовательностей. Модернизация и отладка программы.

2. Оформление и защита лабораторной работы.

Варианты.

 

№ вар. Изменяющаяся в цикле величина № вар. Изменяющаяся в цикле величина № вар. Изменяющаяся в цикле величина
1 C 11 A 21 D
2 D 12 A 22 B
3 B 13 C 23 B
4 D 14 C 24 A
5 A 15 B 25 A
6 D 16 A 26 D
7 A 17 B 27 B
8 B 18 D 28 C
9 B 19 D 29 A
10 A 20 A 30 C

 

Пример лабораторной работы №3

Модернизировать пример к лабораторным работам 1 и 2. Изменяющаяся величина – M.

1) Анализ задания. Для задания диапазона необходимо указать M_beg – начальное значение, M_end – конечное значение и HM – шаг изменения от начального значения к конечному.

2)

 

Разработка алгоритма. Необходимо организовать дополнительно к существующим средствам ввод M_beg, M_end и HM вместо M. Сделать цикл по M. Так как в цикле участвуют величины действительного типа, это будет цикл WHILE. Для каждого очередного значения вычисляем S и F, если это возможно. Текущее значение M, S и F выдавать в одну строку, тогда алгоритм будет выглядеть так:

 

3) Разработка программы. С учетом возможных погрешностей проверку на конец цикла по M и условия возможности выполнить вычисление будем производить с небольшим запасом. Например проверка повторения цикла:

M<=M_end+0.01*HM.

Одно из условий возможности вычислить F: if( fabs( M-5)> 0.01* HM).

……………………
void main()
{

float M, M_ beg, M_ end, HM;
…………………….
printf(“Введите начальное значение, конечное значение и шаг M”);
scanf(“% f% f% f”,& M_ beg,& M_ end,& HM);
printf(“Введите значение N”); scanf(“% d”,& N);
M= M_ beg;           /*присваиваем начальное значение*/
while( M<= M_ end+0.01* HM)/*Организуем цикл по M*/
{ /*Составной оператор цикла, начало*/
printf(“ M=%8.2 f”, M);      /*выводим очередное значение M*/
/*Вычисляем и выводим S и F, причем после вывода F(или сообщения о невозможности вычислить) добавляем символ \ n чтобы обеспечить переход на новую строчку для вывода значений при следующем M с новой строки*/
M+= HM; /*Переход к следующему значению M из диапазона*/
} /*Конец составного оператора в цикле*/
}

Имеет смысл выполнить эту программу с использованием операторов циклов while, do while, for, чтобы разобраться с особенностями их применения.

4) Разработка тестовых последовательностей. Тестовые последовательности должны включать ключевые точки и моменты, которые мы обозначили в предыдущей работе.

 


11 Лабораторная работа №8
Вложенные циклы

 

Найти все возможные значения S и F для задаваемых диапазонов изменения входных величин и шага изменения. Если величина целая, то и шаг ее – тоже целое. Решение задачи организовать с помощью операторов цикла. Модернизировать вычисление F в соответствии с заданием. Перебрать все возможные сочетания входных величин. Сочетаний может быть много. Организовать поэкранный вывод результатов. При разработке программы использовать результаты выполнения лабораторных работ 1-3.

Порядок выполнения работы

Занятие 1. Анализ задания. Разработка математической модели задачи(обратите внимание, что выражение F изменилось). Подготовка тестовых последовательностей. Разработка алгоритма. Внесение изменений и отладка программы.

Занятие 2. Оформление и защита лабораторной работы.

 

Варианты.

 

 

№ вар   Выражение для F Изменяемые величины № вар   Выражение для F Изменяемые величины
1 C и D 16 А и D
2 D и B 17 B и D
3 B и С 18 C и D
4 A и D 19 A и D
5 A и C 20 A и C
6 B и D 21 C и D
7 A и D 22 B и D
8 A и B 23 B и C
9 B и C 24 A и D
10 A и C 25 A и C
11 A и B 26 F= A и D
12 A и B 27 A и B
13 A и С 28 B и C
14 В и С 29 A и B
15 А и В 30 A и C

Пример лабораторной работы №4

 

Модернизируем пример лабораторной работы №3, введя дополнительно цикл по N от N_BEG до N_END с шагом НN. Алгоритм представлен на рисунке.

Программа.

.................

void main()

{ float M,M_BEG,M_END,HM;

int N,N_BEG,N_END,HN;

char i=0;/*для организации поэкранного вывода i-количество строк результатов, выведенных на экран */

.................

 /*Вводим исходные значения M_ BEG, M_ END, HM, N_ BEG, N_ END, HN */

N= N_ BEG;

while( N<= N_ END)/*Работа с целыми не даёт погрешности для операций сложения и вычитания*/

 {/*Начало составного оператора цикла по N*/

M= M_ BEG;/*Каждый раз внутренний цикл начинать с M_ BEG*/

while( M<= M_ END+0.01* HM)/*Для цикла по M учитываем погрешность*/

   {/*Начало цикла по M*/

     /*Вычисляем S и F и вывод N, M, S и F если возможно*/

    i++;/*учитываем очередную строку результата*/

   if( i==24)/*Экран в текстовом режиме-25 строк. Если из них 24 уже заполнены*/

   { printf(“Для продолжения нажмите любую клавишу”);

   getch()/*Ожидает нажатия клавиши*/

       i=0;/*Обнуляем, чтобы отсчитать следующие 24 строки*/

   }

     M+= HM;

   }/*конец цикла по M*/

N+=Н N;

 }/*конец цикла по N*/

}

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


12 Лабораторная работа № 9
Циклы с последовательным накоплением результатов

 

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

Порядок выполнения работы.

1. Разработка математической модели и алгоритма задачи. Разработка тестовых последовательностей данных. Написание и откладка доработанной программы.

2. Оформление и защита лабораторной работы.

Варианты.

 

№ вар. Вычислить № вар. Вычислить № вар. Вычислить
1 и k- количество S>0 11  и k – количество F ≤ 1 21 и k – количество F>0
2 и k- количество F>0 12 и k – количество B>0 22 и k – количество F≤1
3 и k- количество F<0 13 и k – количество C>2 23 и k – количество S<1
4 и k- количество F для D<0      14 и k – количество S>4 24 и k – количество F≥2
5 k-количество F<5 15 и k – количество F≤0 25 и k – количество A<0
6 k-количество B>0 16 и k – количество D<0 26 и k – количество А≥2
7 k-количество А>0.5 17 и k – количество F<0 27 и k – количество F>0
8 k-количество B³0 18 и k – количество F>0 28 и k – количество S<0
9 k- количество В≥0 19 и k – количество A>0 29 и k – количество F<2
10 и k-количество F для А<1 20 и k – количество S>0 30 и k – количество F≥0

 


Дата добавления: 2019-09-13; просмотров: 262; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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