Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИНОБРНАУКИ.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
6.72 Mб
Скачать

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

Цель работы: Получить и узнать возможности работы массивами.

Условие задачи: Даны действительные числа а1,…, а10, b1,…, b20. Получить действительную матрицу [сij] i = 1, …, 20, j = 1,…, 10, для которой сij= aj/(1 + |bi|).

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

//-----------------------------------------------------------------------

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

#include <vcl.h>

#pragma hdrstop

#include <math.h>

//--------------------------------------------------------------------

char NEWT[256];

char*RUS(char*TEXT) {

CharToOem(TEXT,NEWT);

return NEWT;}

//--------------------------------------------------------------------

int main()

{FILE *f1;

if((f1=fopen("матрица.txt","w"))==NULL)

{perror("матрица.txt");

return 1;}

//--------------------------------------------------------------------

int i,j; //задаем переменные

cout<<RUS("Добро пожаловать программу получения действительной матрицы\n");

cout<<"-----------------------------------------------------------\n";

/*float a[10]={1,2,3,4,5,6,7,8,9,10}; //массив а,в,с

float b[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

float c[20][10]={1};*/

float a[10];

float b[20];

float c[20][10]={1};

//-------------------------------------------------------------

cout<<RUS("Введите массив 10 чисел, a[10]:\n"); //вводим данные

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

{cout<<"a["<<j<<"]="; //цикл для 1 ввода

cin>>a[j];}

//-------------------------------------------------------------

cout<<RUS("Введите массив 20 чисел b[20]:\n");

for(i=0;i<20;i++) //цикл для 2 ввода

{cout<<"b["<<i<<"]=";

cin>>b[i];}

//-------------------------------------------------------------

for (int i=0;i<20;i++) //1 строку массива присваиваем числа из массива 10 чисел

{for (int j=0;j<10;j++)

c[i][0]=b[i];

c[0][j]=a[j];}

//-------------------------------------------------------------

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

{for (int j=0;j<10;j++)

//заполняем действительную мастрицу формулой C[i][j]=A[j]/B[i]+1

c[i][j]=(a[j]/(b[i]+1));}

//-------------------------------------------------------------

for (int i=0; i<20; i++) //для наилучшего удобства выводим поток в файл матрица.txt

{for (int j=0; j<10; j++)

fprintf(f1,"%2.5f ",c[i][j]);

fprintf(f1,"\n");}

fclose(f1);

cout<<RUS("\nДанные записываются на файл матрица.txt");

getch();

}

//--------------------------------------------------------------

Блок-схема

Описания проделанной работы

В повседневной жизни постоянно приходится сталкиваться с однотипными объектами. Как и многие другие языки высокого уровня, С++ предоставляет программисту возможность работы с наборами однотипных данных - массивами. Отдельная единица таких данных, входящих в массив, называется элементом массива. В качестве элементов массива могут выступать данные любого типа (один тип данных для каждого массива), а также указатели на однотипные данные. Массивы бывают одномерными и многомерными. Поскольку все элементы массива имеют один тип, они также обладают одинаковым размером. Использованию массива в программе предшествует его объявление, резервирующее под массив определенное количество памяти. При этом указывается тип элементов массива, имя массива и его размер. Размер сообщает компилятору, какое количество элементов будет размещено в массиве.

Лабораторная работа №4 посвящена массивам. Надо получить действи-тельную матрицу с размером [сij] i = 1, …, 20, j = 1,…, 10, заполнить матрицу по формуле сij= aj/(1 + |bi|). Запускаем компилированный файл проекта, программа приветствует и просит заполнить массив из 10 действительных чисел а[10]. После ввода первого массива, заполняем второй массив из 20 действительных чисел b[20]. Нажимая Enter, выводится сообщение “Данные записываются на файл матрица.txt”.

Рисунок 7

Рисунок 8