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

Лабораторная работа №2 Вариант 13

.doc
Скачиваний:
12
Добавлен:
20.06.2014
Размер:
92.16 Кб
Скачать

2

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

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

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

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

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

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

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

«…»

на тему:

«…»

Студент

Ельшаева Н.А.

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

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

Группа

АС-09

Принял

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

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

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

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

Липецк 2009

  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

113

8

6,3

Среднее

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

Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу.

Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.

В ряде скриптовых языков, например JavaScript, PHP, Ruby применяются также ассоциативные массивы, в которых переменные не обязаны быть однотипными, и доступ к ним не обязательно осуществляется по индексу.

Массив — Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и т. д.) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования и/или конкретным транслятором.

В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов. В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива).

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

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

#include <stdio.h>

#include <conio.h>

#include <math.h>

const float S=6.3;

const int N=8;

void massiv (float mas1[N]);

void raschet_G (float mas1[N]);

void raschet_F (float mas1[N]);

void main ()

{

float mas[N];

printf("vvedite 1 element massiva=");

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

massiv (mas);

raschet_G (mas);

raschet_F (mas);

getch();

}

void massiv (float mas1[N])

{

for(int i=1; i<N; i++)

mas1[i]=mas1[i-1]+S;

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

printf("%g ", mas1[i]);

}

void raschet_G (float mas1[N])

{

float G;

G=(mas1[0]+mas1[N-1])/2;

printf("\nCrednee arifmeticheskoe=%e", G);

}

void raschet_F (float mas1[N])

{

float y;

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

{

if (mas1[i]<0)

y=3*powf(mas1[i],2)+3*mas1[i]+8;

else if (0<=mas1 && mas1[i]<20)

y=-5/(mas1[i]-8);

else

y=4*(mas1[i]+8);

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

}

}

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

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

Научились работать с циклами и массивами. Усовершенствовала навыки в программировании.