отчёт
.docМинистерство Образования Республики Беларусь
Учреждение образования
«Гомельский государственный технический университет
имени П.О.Сухого»
Кафедра: « Информационные технологии»
Лабораторная работа №4
по дисциплине: «Основы алгоритмизации и программирования»
Тема лабораторной работы
Программирование разветвляющихся алгоритмов
Выполнил студент
группы ПЭ-12
Михайловская Ирина Михайловна
Проверил преподаватель
Титова Л.К.
Гомель 2012
Лабораторная работа №4
Программирование разветвляющихся алгоритмов
Цель работы: Изучить операции отношения, логические операции, правила записи логических отношений, правили записи и использования операторов if; научиться составлять разветвляющиеся алгоритмы и оформлять их в виде графической схемы, составлять, тестировать и отлаживать в среде IDE разветвляющиеся программы.
Задание.
Разработать алгоритмы, написать на языке Си программы в соответствиями с заданиями (4.1-4.10), подготовить тексты для отладки программ.
Задания, которые необходимо выполнить, задает преподаватель.
Подготовить отчет, который должен содержать:
-
Титульный лист.
-
Цель работы.
-
Для каждой задачи:
-
Условие задачи.
-
Графическую схему алгоритма.
-
Таблицу соответствия переменных.
-
Текст программы на языке Си.
-
Тесты.
-
Листинг с текстом программы
Выводы по работе.
Условия задач
Задание 4.1.
Составить графическую схему алгоритма и написать программу вычисления функции y=f(x) в соответствии с видом функции, приведенном в табл.2.1. В программе предусмотреть вывод
-
значения аргумента функции x;
-
вычисленного значения функции y;
-
номер формулы, по которой производилось вычисление функции (1, 2 или 3).
Результаты и исходные данные вывести:
а) в окно сообщений;
b) в ячейки рабочего листа. Номер строки на рабочем листе, в которую будут выведены результаты, ввести как исходное данное.
Исходные данные для отладки программы выбрать самостоятельно. Предусмотреть отладку программы для каждого интервала изменения функции и для каждой точки ветвления функции.
Таблица 2.1
Вариант |
Вид функции |
14 |
|
Графическая схема линейного алгоритма
Да Нет
Да Нет
n=1
n=2
“
“
n=3
“
Таблица соответствия переменных
Переменная в задачи |
Имя на языке программы си |
тип |
комментарий |
x |
x |
float |
Исх.данные |
y |
y |
float |
Результат |
n |
n |
int |
Номер формулы |
Листинг
/*программу выполнила студентка гр. ПЭ 12 Михайловская Ирина Михайловна*/
#include <stdio.h> // Директивы подключения
#include <conio.h>
#include<math.h> // файлов
#include <windows.h>
char bufRus[256];
char* Rus(const char*text)
{
CharToOem(text, bufRus);
return bufRus;
}
main()
{
float x,y;
int n;
char *z;
puts(Rus("введите x\n"));
scanf("%f",&x);
if(x==0 && x<=-1)
{
y=fabs(x*x*x+4);
n=1;
z="fabs(x*x*x+4)";
}
else
if(x>=8)
{
y=sqrt(x/2);
n=2;
z="y=sqrt(x/2)";
}
else
{
y=x*x*x;
n=3;
z="y=x*x*x";
}
printf(Rus("при x=%.2f y=%.2f %d %s/n"),x,y,n,z);
fflush(stdin);
getchar();
return(0);
}
Тесты
Ниже приводится тест и результаты выполнения программы. Значение b для теста подсчитаны на микрокалькуляторе.
Тест 1. х=0
2. х=8
3. х=6 |
Результаты выполнения программы 1. . 2. 3. |
Задание 4.2.
Выполнить задание в соответствии со своим вариантом в таблице 2.2. Вывести исходные данные и полученные результаты. Исходные данные для отладки программы выбрать самостоятельно так, чтобы проверить все возможные варианты выполнения программы.
Таблица 2.2
Вариант |
Задание |
14 |
Даны числа a, b, c. Вычислить max (a+b+c, abc)*min (a, b, c) |
Графическая схема линейного алгоритма
Да нет да нет
min=a
Да нет
max=a*b*c
max=a+b+c
z=max*min
\
Таблица соответствия переменных
Переменные в задаче |
Имя на языке Си |
Тип |
Комментарий |
a |
a |
float |
исх. данное |
b |
b |
float |
исх. данное |
c |
c |
float |
исх. данное |
|
max |
float |
пром. данное |
|
min |
float |
пром. данное |
|
z |
float |
результат |
Листинг
/*программу выполнила студентка гр. ПЭ 12 Михайловская Ирина Михайловна*/
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <windows.h>
char bufRus[256];
char* Rus(const char*text)
{
CharToOem(text, bufRus);
return bufRus;
}
main()
{
float a,b,c,max,min,z;
puts(Rus("Введите a,b,c"));
scanf("%f%f%f",&a,&b,&c);
if(a+b+c<a*b*c)
max=a*b*c;
else
max=a+b+c;
if(a<b && a<c)
min=a;
else
if(b<a && b<c)
min=b;
else min=c;
z=min*max;
printf(Rus("Произведение max(a+b+c,abc)*min(a,b,c)=%5.3f"),z);
fflush(stdin);
getchar();
return(0);
}
Тесты
Тест
a=2.0, b=5.0, c=9.0
max(a+b+c,abc)*min(a,b,c)=180.0 |
Результаты выполнения программы
|
Вывод: Изучила операции отношения, логические операции, правила записи логических отношений, правили записи и использования операторов if; научиться составлять разветвляющиеся алгоритмы и оформлять их в виде графической схемы, составлять, тестировать и отлаживать в среде IDE разветвляющиеся программы.