Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №4 / Моя Лабораторная №4

.doc
Скачиваний:
10
Добавлен:
20.06.2014
Размер:
2.25 Mб
Скачать

2

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ

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

по дисциплине

«Программирование на языке выс. уровня»

на тему:

«Реализация псевдографики в среде языка Си++»

Студент

подпись, дата

фамилия, инициалы

Группа

Принял

Фарафонов А.С.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2009

  1. Задание

    Задание

    9

    Вычислить значения функции на интервале [-1;30] с шагом 0.5.

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

    18 ***

    *** ***

    *** *** ***

    *** *** *** ***

    *** *** *** *** *** ***

    *** *** *** *** *** *** ***

    0 *** *** *** *** *** *** ***

    3.5 15.5

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

Лестница if-else-if

В программах часто используется конструкция, которую называют лестницей if-else-if[1]. Общая форма лестницы имеет вид

if (выражение) оператор;

else

if (выражение) оператор;

else

if (выражение) оператор;

.

else оператор;

Работает эта конструкция следующим образом. Условные выражения операторов if вычисляются сверху вниз. После выполнения некоторого условия, т.е. когда встретится выражение, принимающее значение ИСТИНА, выполняется ассоциированный с этим выражением оператор, а оставшаяся часть лестницы пропускается. Если все условия ложны, то выполняется оператор в последней фразе else, а если последняя фраза else отсутствует, то в этом случае не выполняется ни один оператор.

Недостаток предыдущей записи лестницы состоит в том, что с ростом глубины вложенности увеличивается количество отступов в строке. Это становится неудобным с технической точки зрения. Поэтому лестницу if-else-if обычно записывают так:

if (выражение)

оператор;

else if (выражение)

оператор;

.

.

.

else

оператор;

  1. Блок-схема программы

  1. Листинг программы

#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. Контрольный пример

  1. Выводы о проделанной работе

Я написал программу для вычисления значения функции на интервале [-1;30] с шагом 0.5.

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

18 ***

*** ***

*** *** ***

*** *** *** ***

*** *** *** *** *** ***

*** *** *** *** *** *** ***

0 *** *** *** *** *** *** ***

3.5 15.5

  1. Список использованной литературы

  1. Шилдт Г. Искусство программирования на C++. БХВ.2005

  2. Шилдт Г. C++ Руководство для начинающих. Вильямс.2005

  3. Страуструп Б. Язык программирования С++. Специальное издание, 3-изд. Бином.2004

Соседние файлы в папке Лабораторная работа №4