Лабораторная работа №2 Вариант 13
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №1
по дисциплине
«…»
на тему:
«…»
|
Студент |
|
|
|
Ельшаева Н.А. |
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
АС-09 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
|
|
||||||||
|
|
|
|
|
Фарафонов А.С. |
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2009
-
Задание
Написать программу, выполняющую следующие действия:
-
Заполнение массива X вещественными числами, образующими арифметическую последовательность. Количество элементов в массиве (N) и шаг последовательности (S) заданы. Начальный элемент вводит пользователь
-
Расчет заданной функции G(X) над элементами массива X и вывод значения функции пользователю. При выводе значение функции представить в экспоненциальном формате.
-
Расчет элементов массива по формуле Yi=F(Xi) и вывод их пользователю в виде
y1 3.543
y2 6.422
y3 -14.223
…………
При выводе округлять значения Yi до 3-х знаков после запятой.
-
Все действия должны быть реализованы в виде отдельных функций.
№ |
N |
S |
G |
F |
113 |
8 |
6,3 |
Среднее |
-
Краткие теоретические сведения
Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу.
Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.
В ряде скриптовых языков, например JavaScript, PHP, Ruby применяются также ассоциативные массивы, в которых переменные не обязаны быть однотипными, и доступ к ним не обязательно осуществляется по индексу.
Массив — Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.
Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.
Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и т. д.) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования и/или конкретным транслятором.
В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов. В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива).
-
Блок-схема программы
-
Листинг программы
#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);
}
}
-
Контрольный пример
-
Выводы о проделанной работе
Научились работать с циклами и массивами. Усовершенствовала навыки в программировании.