Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
09.02.2016
Размер:
87.3 Кб
Скачать

Учреждение «Университет Туран»

Факультет АКТ

Кафедра компьютерная и программная инженерия

Отчёт по лабораторной работе №7

по дисциплине «ООП»

Выполнил

ст. гр. ВТПО-12-1у

Цой А. С.

Проверила

Койшыбаева Ж.Б.

Алматы, 2013

1 ПОСТАНОВКА ЗАДАЧИ

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

2 АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ

Для выполнения данной работы необходимо описать основную работу программы в виде шаблона функции.

3 ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ

1) Дано 6 элементов массива.

Требуется найти индекс минимального элемента и подсчитать сумму модулей элементов массива, находящихся после.

После выше описанных операций задаем интервал и сжимаем массив, заменяя элементы не входящие в интервал, «0».

2) Дана матрица типа 3х4.

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

4 ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ

Некорректный ввод исходных данных. Данные вводятся формата «int», т.е. вводиться могут только цифры. При вводе неправильного значения программа даст сбой.

5 РЕЗУЛЬТАТЫ

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

#include "stdafx.h"

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define N 6

template <typename Type, int size>

Type min( Type (&r_array)[size] )

{

Type min_val = abs(r_array[0]);

int b;

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

if ( abs(r_array[i]) < min_val )

{min_val = abs(r_array[i]);

b=i+1;

}

min_val=b;

return min_val;

}

int _tmain(int argc, _TCHAR* argv[])

{int a[N], b, y,x,sum=0;

printf (" Vvedite v odnoi stroke elementi massiva, \n");

printf (" % i celih chisel, i najmite <Enter> \n" ,N);

printf ("->");

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

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

b = 2147483647;

int itr = min( a );

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

{

if (a[i]<0)

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

sum=sum+abs(a[j]);

i=N;

}

}

printf ("Vvedite interval \n");

scanf( "%i", &x);

scanf( "%i",&y);

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

{

if ((a[i]<x)||(a[i]>y))

a[i]=0;

}

printf("nomer min chisla %i \n", itr);

printf("summa posle otricat %i \n", sum);

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

printf("%i ", a[i]);

printf ("\n");

getch();

return 0;

}

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

// Шаблон функциий.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include<stdio.h>

#include<stdlib.h>

#include <conio.h>

#include<iostream>

#include<math.h>

using namespace std;

template <typename Type, int size,int size1>

Type nomer3( Type (&r_array)[size][size1] )

{

Type sum = 0;

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

for(int j=0;j<size1;j++)

if (r_array[i][j]==3)

sum=sum+1;

return sum;

}

int main()

{

setlocale (LC_ALL,"Russian");

int i,j,sum;

int a[3][4];

sum=0;

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

for(j=0;j<4;j++)

{

cout<<"a["<<i<<"]["<<j<<"]=";

cin>>a[i][j];

}

for (int i=0; i<3; i++) {

for (int j=0; j<4; j++)

std::cout << " " << a[i][j];

std::cout << std::endl; }

int itr=nomer3(a);

cout << itr;

printf ("\n");

system("pause");

return 0;

}

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

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

Соседние файлы в папке лабы