Работа с массивами и файлами

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

Рубрика Программирование, компьютеры и кибернетика
Вид задача
Язык русский
Дата добавления 23.05.2020
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Задача 1

Дана матрица A(N,M). Получить одномерный массив В, записывая в него сумму отрицательных элементов каждого столбца. В массиве вычислить сумму каждого второго элемента и заменить ее значением элементы второй строки матрицы. Массив и матрицу распечатать.

Тестовый пример:

Входные данные:

N=3, M=4, A =

Выходные данные:

B = A =

Блок-схема

Программа

#include<iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int n, m, count=0;

cout<<"Введите размерность матрицы"<<endl;

cout<<"Строк: ";

cin>>n;

cout<<"Столбцов: ";

cin>>m;

int a[n][m], b[m], summ=0;

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

{

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

{

cout<<endl<<"Ввод A["<<i+1<<"]["<<j+1<<"]: ";

cin>>a[i][j];

}

}

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

{

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

{

if(a[j][i]<0)

summ+=a[j][i];

}

b[count]=summ;

count++;

summ=0;

}

cout<<"\n\nB: ";

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

cout<<b[i]<<"\t";

cout<<"\n\n";

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

if((i+1)%2==0)

summ+=b[i];

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

a[1][i] = summ;

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

{

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

{

cout<<a[i][j]<<"\t";

}

cout<<endl;

}

return 0;

}

Результат

Задача 2

Вести два массива A(n), B(m). Найти максимальное значение среди элементов, стоящих на четных позициях в каждом из массивов. Меньшим из максимумов заменить отрицательные элементы в массивах. Массивы распечатать. ИСПОЛЬЗОВАТЬ ФУНКЦИИ: ввод массива, поиск максимума, замена элементов, вывод массива.

Тестовый пример:

Входные данные:

N = 5, M = 7

A = { }

B = { }

Выходные данные:

A = { }

B = { }

Блок - схема

Программа

#include<iostream>

using namespace std;

void ARR_INPUT(int arr[], char *name, int size);

void ARR_CHANGE(int arr[], int size, int new_cost);

void ARR_OUTPUT(int arr[], char *name, int size);

int MAX(int arr[], int size);

int main()

{

setlocale(LC_ALL, "Russian");

int n, m;

cout<<"Введите размерность массива A: ";

cin>>n;

cout<<"Введите размерность массива B: ";

cin>>m;

int A[n], B[m], MAX_A, MAX_B, min;

ARR_INPUT(A, "A", n);

ARR_INPUT(B, "B", m);

MAX_A = MAX(A, n);

MAX_B = MAX(B, m);

system("cls");

min = ((MAX_A<MAX_B)?MAX_A:MAX_B);

ARR_CHANGE(A, n, min);

ARR_CHANGE(B, m, min);

ARR_OUTPUT(A, "A", n);

ARR_OUTPUT(B, "B", m);

return 0;

}

void ARR_INPUT(int arr[], char *name, int size)

{

cout<<endl<<endl<<"Ввод масива "<<name<<": "<<endl;

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

{

cout<<"Ввод "<<i+1<<"-го элемента: ";

cin>>arr[i];

}

}

void ARR_OUTPUT(int arr[],char *name, int size)

{

cout<<endl<<endl<<"Вывод массива "<<name<<": "<<endl;

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

cout<<arr[i]<<"\t";

}

int MAX(int arr[], int size)

{

int max = arr[0];

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

{

if( ((i+1)%2==0)&&(arr[i]>max))

max = arr[i];

}

return max;

}

void ARR_CHANGE(int arr[],int size, int new_cost)

{

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

{

if(arr[i]<0)

arr[i] = new_cost;

}

}

Результат

Задача 3

Сформировать файл F целого типа. Найти и распечатать произведение максимальной и минимальной компонент файла. Произведением заменить все нулевые компоненты, считая, что в файле есть нулевые компоненты. Исходный и полученный файлы вывести.

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

Тестовый пример:

Входные данные:

0 0 0 -10 5 100

Выходные данные:

До преобразования: 0 0 0 -10 5 100

После преобразования: -1000 -1000 -1000 -10 5 100

Произведение максимальной и минимальной компонент файла: -1000

Блок-схема

Программа

#include<iostream>

using namespace std;

int MAX_F(const char *name);

int MIN_F(const char *name);

void F_CHANGE(const char *name, int new_val);

int main()

{

setlocale(LC_ALL, "Russian");

FILE *f = fopen("kr3.txt", "w");

int a = 0, pr;

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

cout<<endl<<"Ввод файла(введите 999 для окончания): "<<endl;

while(true)

{

cin>>a;

if(a==999)

break;

else

fwrite(&a, sizeof(a), 1, f);

}

fclose(f);

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

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

cout<<"\n\n\nФайл до преобразования: \t";

f = fopen("kr3.txt", "r");

while(fread(&a, sizeof(a), 1, f))

cout<<a<<"\t";

fclose(f);

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

pr = MIN_F("kr3.txt")*MAX_F("kr3.txt");

F_CHANGE("kr3.txt", pr);

cout<<"\n\nФайл после преобразования:\t";

f = fopen("kr3.txt", "r");

while(fread(&a, sizeof(a), 1, f))

cout<<a<<"\t";

fclose(f);

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

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

cout<<"Произведение минимальной и максимальной компонент файла: "<<pr<<endl;

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

return 0;

}

int MAX_F(const char *name)

{

FILE *g = fopen(name, "r");

int max=0, temp=0;

while(fread(&temp, sizeof(max), 1, g))

{

if(temp > max)

max = temp;

}

fclose(g);

return max;

}

int MIN_F(const char *name)

{

FILE *g = fopen(name, "r");

int min=0, temp=0;

while(fread(&temp, sizeof(min), 1, g))

{

if(temp < min)

min = temp;

}

fclose(g);

return min;

}

void F_CHANGE(const char *name, int new_val)

{

FILE *g = fopen(name, "r+");

int val;

while(fread(&val, sizeof(val), 1, g))

{

if(val==0)

{

fseek(g, -sizeof(val), SEEK_CUR);

fwrite(&new_val, sizeof(new_val), 1, g);

}

}

fclose(g);

}

Результат

Размещено на Allbest.ru

...

Подобные документы

  • Формирование одномерного массива, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. Определение столбца, в котором равное количество положительных и отрицательных элементов. Написание программы и ее тестирование.

    контрольная работа [97,2 K], добавлен 21.06.2009

  • Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.

    лабораторная работа [1,3 M], добавлен 23.11.2014

  • Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.

    контрольная работа [1,0 M], добавлен 30.04.2013

  • Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.

    лабораторная работа [259,3 K], добавлен 14.05.2011

  • Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.

    лабораторная работа [12,8 K], добавлен 02.12.2014

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

    контрольная работа [1,0 M], добавлен 23.11.2014

  • Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.

    лабораторная работа [946,5 K], добавлен 23.11.2014

  • Формирование матрицы и выполнение заданий: вычисление сумы четных элементов; максимума из нечетных элементов в строке; произведение элементов в нечетных столбцах; количество четных элементов выше главной диагонали. Создание программы в Visual Basic.

    контрольная работа [12,0 K], добавлен 07.10.2012

  • Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.

    контрольная работа [12,3 K], добавлен 07.10.2012

  • Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.

    курсовая работа [1,7 M], добавлен 06.01.2014

  • Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.

    лабораторная работа [12,8 K], добавлен 09.01.2011

  • Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.

    практическая работа [37,5 K], добавлен 20.05.2012

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

    курсовая работа [44,0 K], добавлен 09.11.2014

  • Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.

    курсовая работа [1,1 M], добавлен 20.05.2014

  • Основные операции над матрицами. Формирование матрицы из файла. Ввод матрицы с клавиатуры. Заполнение матрицы случайными числами. Способы формирования двухмерных массивов в среде программирования С++. Произведение определенных элементов матрицы.

    курсовая работа [537,0 K], добавлен 02.06.2015

  • Структура программного комплекса. Ввод информации из заданного файла. Создание набора данных. Добавление элементов в конец набора данных. Просмотр всех элементов набора данных. Копирование информации из НД в заданный файл. Сортировка массива по номерам.

    курсовая работа [630,5 K], добавлен 01.06.2014

  • Описание особенностей работы с массивами на С/С++. Образование адресного выражения с использованием имени массива или указателя на массив. Написание программы, которая объединяет два упорядоченных по возрастанию массива в один упорядоченный массив.

    лабораторная работа [114,2 K], добавлен 25.03.2019

  • Алгоритм по обработке массивов таким образом, чтобы группы, состоящие из трех или более подряд стоящих нулей, были переписаны в начало массива. Сортировка полученных массивов методом всплывающего пузырька. Вывод на дисплей монитора обновленной матрицы.

    курсовая работа [300,1 K], добавлен 30.08.2011

  • Структура – это объединение одного либо более объектов (переменных, массивов, указателей, других структур). Понятие структурной переменной. Создание массивов структур. Использование вложенных структур в виде элементов массивов person, date, pibm.

    лабораторная работа [17,6 K], добавлен 15.07.2010

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

    отчет по практике [1,2 M], добавлен 01.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.