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

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

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

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

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

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

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

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

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

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

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

на тему:

«Циклы, массивы»

Студент

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

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

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

Группа

АС-10-1

Принял

ассистент

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

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

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

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

Липецк 2010

  1. Задание

Написать программу, выполняющую следующие действия:

  1. Заполнение массива X вещественными числами, образующими арифметическую последовательность. Количество элементов в массиве (N) и шаг последовательности (S) заданы. Начальный элемент вводит пользователь

  2. Расчет заданной функции G(X) над элементами массива X и вывод значения функции пользователю. При выводе значение функции представить в экспоненциальном формате.

  3. Расчет элементов массива по формуле Yi=F(Xi) и вывод их пользователю в виде

y1 3.543

y2 6.422

y3 -14.223

…………

При выводе округлять значения Yi до 3-х знаков после запятой.

  1. Все действия должны быть реализованы в виде отдельных функций.

N

S

G

F

24

7

14,2

Произведение

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

Синтаксис оператора пошагового цикла for:

for([<начальное-выражение>]; [<условное-выражение>]; [<выражение-приращения>])

<оператор>

Тело оператора цикла for выполняется до тех пор, пока <условное-выражение> не станет ложным. Если оно изначально ложно, то тело цикла не будет выполнено ни разу. Если условное выражение истинно (не равно нулю), то выполняется тело оператора. Затем вычисляется выражение приращения (если оно есть), и процесс повторяется. Когда условное выражение становится ложным, то выполнение оператора for заканчивается и управление передается следующему за ним оператору в программе.

Синтаксис объявления массива:

[<спецификация типа]> <описатель> [<константное выражение>];

[<спецификация типа]> <описатель> [];

Массив позволяет хранить как единое целое последовательность переменных одинакового типа. Объявление массива определяет тип элементов массива и его имя. Оно может определять также число элементов в массиве.

Константное выражение, заключенное в квадратные скобки, определяет число элементов в массиве. Индексация элементов массива начинается с нуля. Таким образом, последний элемент массива имеет индекс на единицу меньше, чем число элементов в массиве.

Многомерный массив, или массив массивов, объявляется путем задания последовательности константных выражений в квадратных скобках, следующей за описателем:

<спецификация типа> <описатель> [<константное выражение>] {<константное выражение>]…;

Каждое константное выражение в квадратных скобках определяет число элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражения, трехмерного — три и т. д.

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

char а[2][3]

будет храниться следующим образом: сначала в памяти запоминаются три элемента первой строки, затем три элемента второй строки. При таком методе хранения последний индекс массива меняется быстрее предпоследнего. Для доступа к отдельному элементу массива используется индексное выражение.

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

3.1. Блок-схема подпрограммы «Заполнение массива согласно условию и вывод его элементов на экран»

3.2. Блок-схема подпрограммы «Произведение элементов массива и вывод значения на экран»

3.3. Блок-схема подпрограммы «Расчет элементов массива по формуле Yi=F(Xi) и вывод их на экран»

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

#include <stdio.h>

#include <conio.h>

#include <locale.h>

void zapolnenie(float X[7])

{

int i;

printf("Введите первый член последовательности: ");

scanf("%f",&X[0]);

printf("%f",X[0]);

for(i=1;i<7;i++)

{

X[i]=X[i-1]+14.2;

printf(" %f",X[i]);

}

}

void proizvedenie(float X[7])

{

float p=1.0;

int i;

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

p=X[i]*p;

printf("\nПроизведение элементов массива = %e",p);

}

void systema(float X[7])

{

int i;

float y;

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

{

if(X[i]<15)

{

y=-10*X[i]-5;

printf("\ny%d %.3f",i+1,y);

}

else if((X[i]>=15)&&(X[i]<50))

{

y=(X[i]-10)/6;

printf("\ny%d %.3f",i+1,y);

}

else if(X[i]>50)

{

y=7*X[i]/8;

printf("\ny%d %.3f",i+1,y);

}

else printf("\ny%d не существует", i+1);

}

}

void main()

{

float X[7];

setlocale(LC_ALL, "Russian");

zapolnenie(X);

proizvedenie(X);

systema(X);

getch();

}

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

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

В ходе выполнения данной лабораторной работы я написал программу, выполняющую следующие действия:

1.Заполнение массива А вещественными числами, образующими арифметическую последовательность. Количество элементов в массиве (N) и шаг последовательности (S) заданы. Начальный элемент вводит пользователь

2. Расчет заданной функции G(X) над элементами массива X и вывод значения функции пользователю. При выводе значение функции представить в экспоненциальном формате.

3. Расчет элементов массива по формуле Yi=F(Xi) и вывод их пользователю в виде

y1 3.543

y2 6.422

y3 -14.223

…………

4. При выводе округление значения Yi до 3-х знаков после запятой.

Все действия я реализовал в виде отдельных функций. Каждая из них отвечает за определенную последовательность действий, и в совокупности все три подпрограммы вместе c функцией main() составляют единое целое. Использование массивов(в данном случае одномерных) и оператора пошагового цикла for способствуют более эффективному решению поставленной задачи. Их использование позволило мне снизить трудовые затраты на операции над множеством переменных одинакового типа, а также легко выполнить проверку определенных условий. Таким образом, при написании данной программы я улучшил свои навыки в программировании на С/C++.

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

  1. Керниган Б.У., Ритчи Д.М. Язык программирования С. - 2-е изд. – М.: «Вильямс», 2007. – С. 304

  2. Шилдт Г. С++ Руководство для начинающих. – М.: «Вильямс», 2005.