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

Лабораторная работа №4 (Вариант 24)

.docx
Скачиваний:
9
Добавлен:
20.06.2014
Размер:
358.08 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

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

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

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

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

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

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

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

на тему:

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

Студент

Ключанских А.С

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

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

Группа

АС-10-1

Принял

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

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

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

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

Липецк 2010

  1. Задание кафедры

24

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

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

18 ***

*** ***

*** *** ***

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

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

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

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

3.5 15.5

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

Оператор пошагового цикла for:

Общая форма оператора for следующая:

for (инициализация; условие; приращение) оператор;

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

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

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 <math.h>

void main()

{

const int N = 58;

int i, a1=0, a2=0,a3=0,a4=0,a5=0,a6=0,a7=0;

double A[N],x = 1.5;

for(i=0;i<N;i++)

{

A[i] = log(x-1.0);

x=x+0.5;

}

for(i=0;i<N;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("\t %d %d %d %d %d %d %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%.1f\t\t\t%.1f",A[0],A[N-1]);

getch();

}

  1. Контрольный пример

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

В ходе выполнения данной лабораторной работы я написал программу для вычисления значения функции на интервале [1.5;30] с шагом 0.5 и заполнения массива этими данными. Программа разбивает интервал изменения функции на заданном промежутке на 7 равных отрезков и считает, сколько значений попало в каждый отрезок, а затем изображает на экране результат в виде столбиковой диаграммы. Высота столбиков диаграммы пропорциональна количеству точек, попавших в каждый отрезок. Минимальное значение функции равно ее значению в крайней левой точке отрезка(1.5), а максимальное – в крайней правой точке(30).

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

  1. Керниган, Б.У. Язык программирования C [Текст]: учеб.пособие / Б.У. Керниган, Д. М. Ритчи. — М.: «Вильямс», 2007. — 304 с.

  2. Шилдт, Г. C++ Шаг за шагом [Текст]: учеб.пособие/ Г. Шилдт.— М.: «ЭКОМ», 2007. — 640с.