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

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

.doc
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
458.24 Кб
Скачать

Министерство образования РФ

Санкт-Петербургский государственный электротехнический университет

“ЛЭТИ”

Кафедра Вычислительной Техники

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

По дисциплине «Программирование»

«Массивы в языке Си»

Выполнил: Власюк А. В.

Преподаватель:

Сискович Т. И.

Факультет: КТИ

Группа: 3371

Санкт-Петербург

2003

Цель работы:

Изучение массивов и операций над ними в языке Си.

Задание на лабораторную работу:

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

  1. Создаёт массив заданной пользователем длины.

  2. Заполняет массив заданными пользователем значениями.

  3. Производит контрольный вывод массива.

  4. Сортировку массива.

  5. Создаёт из старого массива новый, удовлетворяющий заданному условию.

  6. Вывод нового массива.

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

Длина исходного массива

Элементы массива

Результат

-1

отсутствуют

Число элементов массива заданно неверно

3

3,1,2

контрольный вывод массива:3,1,2

отсортированный массив(по возрастанию):1,2,3

отсортированный массив(по убыванию):3,2,1

массив из положительных элементов:3,2,1

3

-1,2,-3

контрольный вывод массива:-1,2,-3

отсортированный массив(по возрастанию):-3,-1,2

отсортированный массив(по убыванию):2,-1,-3

массив из положительных элементов:2

2

-4,-5

контрольный вывод массива:-4,-5

отсортированный массив(по возрастанию):-5,-4

отсортированный массив(по убыванию):-4,-5

массив из положительных элементов: положительных элементов нет

Описание данных:

переменная

тип

описание

n

int

длина исходного массива (число элементов)

i

int

вспомогательная переменная

j

int

вспомогательная переменная

k

int

вспомогательная переменная

b

float

вспомогательная переменная

a

float

исходный массив

l

float

получаемый массив положительных элементов

s

char

символ управления циклом

Текст программы:

#include<conio.h>

#include<stdio.h>

void main (void)

{

clrscr();

textcolor(12);

int n,i,j,k;

float a[50],b,l[50];

char s;

cprintf("\n\n\n\n\n Программа,предназначенная \n ");

cprintf(" для работы с массивами \n ");

getch();

clrscr();

//Вводим размер массива 

do

{

do

{

do

{

clrscr();

printf("\n\n\n\n\n");

printf("\n Введите размер массива N(от 1 до 50)\n");

printf("\n N=");

scanf("%d",&n);

if(n<=0)

{

printf("\n Параметр N был введен неверно");

getch();

}

}

while(n<=0);

//Вводим массив

printf("\n Введите значения массива  \n");

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

{

scanf("%f",&a[i]);

}

printf("\n\n\n\n");

printf("\n Ввести размер и значения заново?(y/n)");

s=getch();

}

while(s=='y'||s=='Y');

//Выводим массив

printf("\n Вывод массива .\n\n");

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

{

printf(" a[%d]=%.3f\n",i,a[i]);

}

getch();

clrscr();

// Сортировка по возратанию

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(a[i]>a[j])

{

b=a[i];

a[i]=a[j];

a[j]=b;

}

printf("\n Сортировка по возрастанию.");

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

printf("\n %.3f ",a[i]);

// Сортировка по убыванию

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(a[i]<a[j])

{

b=a[i];

a[i]=a[j];

a[j]=b;

}

printf("\n Сортировка по убыванию.");

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

printf("\n %.3f ",a[i]);

// Массив из положительных элементов.

printf("\n Массив из положительных элементов:");

j=0;

k=0;

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

{

if(a[i]>0)

{

l[j]=a[i];

printf("\n l[%d]=%.3f ",j,l[j]);

j++;

k++;

}

}

if(k==0)

printf("\n Положительных элементов нет\n");

printf("\n\n\n\n Для продолжения работы нажмите любую клавишу.");

getch();

clrscr();

printf("\n \n\n\n\n\n\n");

printf("\n Продолжить работу программы?(y/n) ");

s=getche();

}

while(s=='y'||s=='Y');

}

Блок схема:

нет

да

нет

да

да

да

нет

да

нет

нет

да

нет

да

да

нет

нет

да

нет

нет

да

да

нет

да

нет

да

нет

да

нет

Пояснения:

Сообщение 1: Программа,предназначенная для работы с массивами.

Сообщение 2:Параметр N был введен неверно.

Сообщение 3:Положительных элементов нет.Для продолжения нажмите любую клавишу.

Условие 1:Ввести размер и значения заново?(y/n)

Условие 2:Продолжить работу программы?(y/n)

Результаты решения задачи:

Все полученные ответы совпадают с контрольными примерами.

Выводы:

Данная лабораторная работа позволяет овладеть основами использования массивов в языке Си.