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