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

С++ ЕНФ / мои отчёты / Отчёт по Лабе №3

.doc
Скачиваний:
15
Добавлен:
25.05.2014
Размер:
85.5 Кб
Скачать

Федеральное агентство по образованию Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

«Уфимский Государственный Авиационный Технический Университет»

Кафедра ВВТиС

ОТЧЕТ

по лабораторной работе №3

Массивы в С++

Выполнил: студент гр. ПМ-125

Марьин Д.Ф.

Проверил: ст. преподаватель каф. ВВТиС

Насибуллаева Э.Ш.

Уфа 2005

Содержание

Цель работы 3

1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 4

1.1.Массивы 4

1.1.1.Определение массивов 4

1.1.2.Инициализация массивов 4

1.2.Сортировка массива (метод “пузырька”) 4

2.ПРАКТИЧЕСКАЯ ЧАСТЬ 5

2.1.Описание программы LABA3_1.cpp 5

2.2.Описание программы LABA3_2.cpp 5

ЗАКЛЮЧЕНИЕ 6

Список литературы 7

ПРИЛОЖЕНИЕ А 8

Цель работы

  • Ознакомиться с методами определения и инициализации массива

  • Разобраться в основных типах сортировки массивов ,и освоить метод определения быстродействия данного алгоритма

  • Разобраться в особенностях передачи массива в функцию

  • Получить начальное представление об указателях, используемых при работе с массивами

Задание к лабораторной работе № 3

1. Написать программу, которая находит минимальный элемент в массиве, введенным с клавиатуры.

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

Сортировку оформить в виде функции.

Во всех программах должна быть предусмотрена защита ввода неправильных данных.

1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1.Массивы

1.1.1.Определение массивов

Кроме одиночных переменных, представляющих в программе отдельное число или символ, в языке С определено понятие массива. Массив - это совокупность (последовательность) значений одного типа. Для объявления массива в программе используется следующий синтаксис:

int аrray[10]; // Массив из десяти целых чисел

double array[1000]; // Массив из 1000 действительных чисел

char array[80]; // Массив из 80 байтов

Для доступа к отдельному элементу массива введено понятие индекса - т.е. номер элемента в массиве, причем индекс массива, состоящего из N элементов, меняется от 0 до N - 1. Так массив

int Ar[3];

содержит элементы Ar[0], Ar[1], Ar[2].

1.1.2.Инициализация массивов

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

По существу инициализация - это объединение определения объекта с одновременным присваиванием ему конкретного значения. Использование инициализации позволяет изменить формат определения массива. Например, можно явно не указывать количество элементов одномерного массива, а только перечислить их начальные значения в списке инициализации:

int s[] = {1, 2, 3, 4, 5};

В данном примере будет определен одномерный массив из пяти элементов, причем

s[0]=1 s[1]=2 s[2]=3 s[3]=4 s[4]=5

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

1.2.Сортировка массива (метод “пузырька”)

В сортировке «пузырьком» суть заключается в том, что мы сравниваем последовательно два различных элемента массива, и в случае необходимости меняем их местами.

2.ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1.Описание программы LABA3_1.cpp

В данной программе требуется найти минимальный элемент массива, введенного с клавиатуры. Для этого используется итерационный цикл.

2.2.Описание программы LABA3_2.cpp

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

Podschetsort () ,которая осуществляет сортировку методом подсчета ,алгоритм которого описан в теоретической части,и наконец vivod_na_ekran()функция выводящая результаты (итоговую таблицу) на экран, где тоже применен цикл for,при этом для связывания названия команды и его порядкового номера предусмотрена функция komanda()выполняющая означенную процедуру посредством цикла switch().

ЗАКЛЮЧЕНИЕ

  • В ходе написания программ я ознакомился с методами определения, инициализации и работы с элементами массива

  • После изучения методов сортировки и их непосредственного применения я понял основное различие между алгоритмами сортировки и разобрался в основных подходах к ней

  • Также я убедился в удобстве принятого соглашения об индексировании элементов массива

Список литературы

  1. Подбельский В.В. Язык Си++. – М.: Финансы и статистика,1996.­­­­­–560 с.

  2. Дейтел Х., Дейтел П. Язык пограммирования С++: перевод с англ.

М.:ЗАО «Издательство БИНОМ»,1998,1024с.

ПРИЛОЖЕНИЕ А

Листинг программы 3LB1.cpp

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

#include <iostream.h>;

#include <math.h>;

#include <conio.h>;

/* Directiva preprocessora #include <imya faila>:osushestvlyaet

poisk faila v standartnih directoriyah.

iostream.h-input and output on a stream,uses functions cout,cin

math.h- matematicheskie funcsii uses functions abs(),

conio.h-rabota s ekranom,uses functions clrscr(),getch()*/

void main()

{

clrscr();

cout<<"proga vichislyayushaya min element massiva Z chisel \n";

int m[100]; int c=1,i=0,l=0,min=0; float n=0;

do

{

Cout<<"vvedite kol-vo elementov massiva,ono dolgno bit >0 i celoe \n";

cin>>n;

}

while ((n<=0.)||(n-int(n)!=0)||(n>=100.));//zapros na vvod kol-va elementov massiva

l=n; textcolor(1);

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

{

do {cout<<"vvedite "<<i<<" element massiva,on dolgen bit celim \n\n";

cin>>n; m[i-1]=n;}

while (n-int(n)!=0);//vvod elementov massiva i proverka na uslovie

};

min=m[0]; //prisvaivanie znach. min znach. 1 elementa

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

{

if (m[i]<min) min=m[i]; //esli i element <min to menyaem mestami

};

cout<<"min element massiva= "<<min; //vivod min elementa

getch();

}

Листинг программы 3LB2.cpp

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

#include <iostream.h>

#include <conio.h>

//#include <math.h>

//int const N=3,B=5; int ball[s][s]={0}; int k[s]={0}; float c[s]={0}; char str[s]={0};

template <class T> //shablon funkcii,kotoraya menyaet mestami elementi

T swap (T *v1,T *v2)

{ T v; v=*v1;*v1=*v2;*v2=v; return 0;}

void sort(int *c,int N,char *str,int n)

//sortirovka metodom PUZIRKA

{float p; char ch;

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

{for(int l=0;l<(N-i);l++)

{if (c[l]<c[l+1])

{swap(&c[l],&c[l+1]);swap(&str[l],&str[l+1]); //obmen mestami

//p=c[l];c[l]=c[l+1];c[l+1]=p;ch=str[l];str[l]=str[l+1];str[l+1]=ch;

};

};

};

}

void main() //glavnaya funkciya

{

clrscr();

int const N=3,B=3;

//int ball[3][3];

int c[3];char str[3]={'Q','A','Z'};

int x,j=0,i=0; float y=0;

cout<<"proga "<<N<<" luchshih tovarov goda \n\n";

//for (j=1;j<=N;j++){cout<<"vvedite nazvanie "<<j<<"tovara \n\n"; cin>>str[j-1];};

for (j=0;j<=(N-1);j++)

{ c[j]=0;

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

{

cout<<"vvedite kol-vo chelovek davshih tovaru "<<str[j]<<" ocenku "<<(i+1)<<endl;

cin>>y; x=y; //zapros dannih

while ((y<0)||(x!=y))

{cout<<"kol-vo chelovek dolgno bit celim & >0 \n\n";

cout<<"vvedite kol-vo chelovek davshih tovaru "<<str[j]<<" ocenku "<<(i+1)<<endl;

cin>>y; x=y;

};

//ball[j][i]=x;

c[j]+=(i+1)*x;

};

//for (i=0;i<=(B-1);i++) {c[j]+=(i+1)*ball[j][i];};

};

sort(c,N,str,N); //vizov funkcii

for (j=0;j<=(N-1);j++) //vivod rezultata na ekran

cout<<(j+1)<<" mesto: tovar "<<str[j]<<" ; kol-vo ballov= "<<c[j]<<endl;

getch();

}

9

Соседние файлы в папке мои отчёты