
Лабораторная работа №4 / Моя Лабораторная №4
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №4
по дисциплине
«Программирование на языке выс. уровня»
на тему:
«Реализация псевдографики в среде языка Си++»
|
Студент |
|
|
|
|
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
|
|
||||||||
|
|
|
|
|
Фарафонов А.С. |
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2009
-
Задание
№
Задание
9
Вычислить значения функции
на интервале
[-1;30] с шагом 0.5.
Разбить интервал изменения функции на заданном промежутке на 7 равных отрезков и посчитать, сколько значений попало в каждый отрезок. Нарисовать на экране результат в виде столбиковой диаграммы, как показано на рисунке. Высота столбиков диаграммы должна быть пропорциональна количеству точек, попавших в каждый отрезок. Подписать максимальную и минимальную высоту столбиков, а так же минимальное и максимальное значение функции.
18 ***
*** ***
*** *** ***
*** *** *** ***
*** *** *** *** *** ***
*** *** *** *** *** *** ***
0 *** *** *** *** *** *** ***
3.5 15.5
-
Краткие теоретические сведения
Лестница if-else-if
В программах часто используется конструкция, которую называют лестницей if-else-if[1]. Общая форма лестницы имеет вид
if (выражение) оператор;
else
if (выражение) оператор;
else
if (выражение) оператор;
.
else оператор;
Работает эта конструкция следующим образом. Условные выражения операторов if вычисляются сверху вниз. После выполнения некоторого условия, т.е. когда встретится выражение, принимающее значение ИСТИНА, выполняется ассоциированный с этим выражением оператор, а оставшаяся часть лестницы пропускается. Если все условия ложны, то выполняется оператор в последней фразе else, а если последняя фраза else отсутствует, то в этом случае не выполняется ни один оператор.
Недостаток предыдущей записи лестницы состоит в том, что с ростом глубины вложенности увеличивается количество отступов в строке. Это становится неудобным с технической точки зрения. Поэтому лестницу if-else-if обычно записывают так:
if (выражение)
оператор;
else if (выражение)
оператор;
.
.
.
else
оператор;
-
Блок-схема программы
-
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <math.h>
void main()
{
setlocale(LC_ALL,"Russian");
const int N=64;
int i, a1=0, a2=0, a3=0, a4=0, a5=0, a6=0, a7=0;
float A[N], y=0.5, k=0.0;
for(i=0;i<64;i=i++) //Заполняем массив значений функции
{
A[i]=pow(k, y);
k=k+0.5;
}
for(i=0;i<64;i=i++) /*подсчет количества значений функии на каждом из семи интервалов*/
{
if (A[i]<(A[N-1]/7))
a1++;
else if(A[i]<(2*A[N-1]/7))
a2++;
else if(A[i]<(3*A[N-1]/7))
a3++;
else if(A[i]<(4*A[N-1]/7))
a4++;
else if(A[i]<(5*A[N-1]/7))
a5++;
else if(A[i]<(6*A[N-1]/7))
a6++;
else if(A[i]<=A[N-1])
a7++;
}
printf("a1=%d\ta2=%d\ta3=%d\ta4=%d\ta5=%d\ta6=%d\ta7=%d\n\n", a1, a2, a3, a4, a5, a6, a7);
printf("%d",a7); /*Вывод максимального количества значений функии на одном из интервалов*/
for(i=0;i<a7;i++) //Построение диаграммы
{
if(a1>=(a7-i)) printf("\t*** ");
else printf("\t ");
if(a2>=(a7-i)) printf("*** ");
else printf(" ");
if(a3>=(a7-i)) printf("*** ");
else printf(" ");
if(a4>=(a7-i)) printf("*** ");
else printf(" ");
if(a5>=(a7-i)) printf("*** ");
else printf(" ");
if(a6>=(a7-i)) printf("*** ");
else printf(" ");
printf("***\n");
}
printf("0 ---------------------------------");
printf("\n\t%.0f\t\t\t%.2f",A[0],A[N-1]);
getch();
}
-
Контрольный пример
-
Выводы о проделанной работе
Я написал программу для вычисления
значения функции
на интервале
[-1;30]
с шагом 0.5.
Программа разбивает интервал изменения функции на заданном промежутке на 7 равных отрезков и считает, сколько значений попало в каждый отрезок. Также она изображает на экране результат в виде столбиковой диаграммы, как показано на рисунке. Высота столбиков диаграммы пропорциональна количеству точек, попавших в каждый отрезок. Подписаны максимальная и минимальная высота столбиков, а так же минимальное и максимальное значение функции.
18 ***
*** ***
*** *** ***
*** *** *** ***
*** *** *** *** *** ***
*** *** *** *** *** *** ***
0 *** *** *** *** *** *** ***
3.5 15.5
-
Список использованной литературы
-
Шилдт Г. Искусство программирования на C++. БХВ.2005
-
Шилдт Г. C++ Руководство для начинающих. Вильямс.2005
-
Страуструп Б. Язык программирования С++. Специальное издание, 3-изд. Бином.2004