Работа с массивами и файлами
Получение одномерного массива, записывая в него сумму отрицательных элементов каждого столбца. Максимальное значение среди элементов, стоящих на четных позициях в каждом из массивов. Формирование файла целого типа. Максимальная и минимальная компоненты.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | задача |
Язык | русский |
Дата добавления | 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