объектно ориентированное программирование / лабы / lab6
.docxУчреждение «Университет Туран»
Факультет АКТ
Кафедра компьютерная и программная инженерия
Отчёт по лабораторной работе №6
по дисциплине «ООП»
Выполнил
ст. гр. ВТПО-12-1у
Цой А. С.
Проверила
Койшыбаева Ж.Б.
Алматы, 2013
1 ПОСТАНОВКА ЗАДАЧИ
Функции и массивы.
Выполнить задания третьей лабораторной работы (Одномерные массивы) и четвертой лабораторной работы (Двумерные массивы), оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.
2 АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ
Для выполнения данной работы необходимо описать основную работу выполняющую поиск значения «3» в матрице для 3 лабораторной и поиск индекса минимального элемента для 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
void func1(int *mat,int b1)
{int c,sum=0;
for (int i=0;i<N;i++)
{
if (abs(mat[i])<b1)
{
b1=abs(mat[i]);
c=i;
}
}
for (int i=0;i<N;i++)
{
if (mat[i]<0)
{ for (int j=i+1;j<N;j++)
sum=sum+abs(mat[j]);
i=N;
}
}
printf("nomer min chisla %i \n", c+1);
printf("summa posle otricat %i \n", sum);
}
int _tmain(int argc, _TCHAR* argv[])
{int a[N], b, y,x;
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;
func1 (&a[0],b);
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;
}
for (int i=0;i<N;i++)
printf("%i ", a[i]);
printf ("\n");
getch();
return 0;
}
5.1.2 Листинг программы
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<iostream>
#include<math.h>
using namespace std;
void func2(int mat[3][4])
{ int sum=0;
for (int i=0;i<3;i++)
for(int j=0;j<4;j++)
if (mat[i][j]==3)
sum=sum+1;
cout << 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; }
func2(a);
printf ("\n");
system("pause");
return 0;
}
5.2.1 Контрольный пример
5.2.2 Контрольный пример