Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная по ОАиП Скачков А.А.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.42 Mб
Скачать

Int main()

{

int a[100], n;

cout <<"Vvedite razmer massiva: ";

cin >> n;

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

{

cout <<"Vvedite a["<<i+1<<"] element: ";

cin >> a[i];

}

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

{

cout << a[i] << setw(5);

}

cout <<endl<<Proizvedenie(a, FindMin(a, n), n)<<endl;

system("pause");

return 0; }

int FindMin(int massiv[], int razmer)

{

int index = 0, minElement = massiv[0];

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

{

if (minElement > massiv[i])

{

minElement = massiv[i];

index = i;

}

}

return index;

}

int Proizvedenie(int massiv[], int index, int razmer)

{

int result = 1;

for (int i = index + 1; i < razmer; i++)

{

result *= abs(massiv[i]);

}

return result;

}

Результат выполнения программы

Задание 5

Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть в программе использование функции пользователя.

Определить произведение кратных трем элементов матрицы, располо-

женных выше ее главной диагонали, включая саму диагональ.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

#include <iomanip>

using namespace std;

double FindProizv(double **, int, int);

Int main()

{

int n, m;

cout <<"Vvedite kol-vo strok massiva: ";

cin >> n;

cout <<"Vvedite kol-vo stolbcov massiva: ";

cin >> m;

double **a = new double*[n];

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

{

a[i] = new double[m];

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

{

cout <<"Vvedite a["<<i+1<<", "<<j+1<<"] element: ";

cin >> a[i][j];

}

}

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

{

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

{

cout << setw(5) << a[i][j];

}

cout << endl;

}

cout <<FindProizv(a, n, m)<<endl;

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

{

delete [] a[i];

}

delete [] a;

system("pause");

return 0;

}

double FindProizv(double* massiv[], int n, int m)

{

double result = 1;

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

{

for (int j = i; j < m; j++)

{

if (abs((int)(massiv[i][j])) % 3 == 0)

result *= massiv[i][j];

}

}

return result;

}

Результат выполнения программы

Задание 6

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

У администратора железнодорожных касс хранится информация о сво-

бодных местах в поездах. Информация представлена в следующем виде: номер

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

информацию о поездах, в которых имеются свободные места до заданного

пункта назначения.

Блок-схема алгоритма

Код программы

#include "stdafx.h"

#include <math.h>

#include <iostream>

#include <iomanip>

#include <string>

typedef struct

{

char * TrainNumber;

char * Destination;

char * Time;

char * PlaceCount;

} FreePlace;

using namespace std;

int Menu();

int OpenFreePlaces(FreePlace *, char *);void NewFreePlace(FreePlace *, int); void DeleteFreePlace(FreePlace *, int, int);

void SaveFreePlaces(FreePlace, char *);

void WriteInfoInFile(FreePlace *, char *, int, char *);

void WriteInfoInScreen(FreePlace *, int, char *);

void WriteAllFreePlaces(FreePlace *, int);

bool equals(char *, char *);