Методы создания массивов переменных и способы их применения
Разработка программного приложения для вычисления одномерного массива, в котором беспорядочно вводятся элементы вещественного типа. Алгоритм реализации метода определения суммы и количества положительных элементов массива с использованием циклов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 04.12.2018 |
Размер файла | 103,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
1. Постановка задачи
1) В одномерный массив, состоящий из N вещественных элементов, по возрастанию (отсортируйте своими силами без использования специальных функций сортировки).
2) Дана целочисленная матрица A(N, M). Вычислите и запомните сумму и количество положительных элементов каждого столбца матрицы. Результаты выведите в две строки (в первой - суммы, во второй - количество).
2. Решение задачи
2.1 Анализ задачи и формальная постановка
Анализ задачи.
Написать программу с одномерным массивом, в котором будут беспорядочно введены элементы вещественного типа. Понадобится отсортировать данный массив с помощью цикла и условия, а затем вывести уже отсортированный массив на экран (сортировка будет по убыванию).
Формальная постановка задачи.
Входные данные:
A[N] - массив с N элементами вещественного типа float;
Выходные данные:
A[N] - тот же самый массив из N элементов вещественного типа float, но уже с отсортированными элементами по убыванию.
Промежуточные переменные:
i, j - индексы для работы с массивом целого типа int;
B - переменная, необходимая для обмена значениями между элементами, вещественного типа float;
Метод решения:
B = A[i];
A[i] = A[j];
A[j] = B;
2.2 Проектирование
Алгоритм с циклами и условием:
Рис. 1
2.3 Реализация
Вывод сообщения о том, что нужно ввести элементы массива:
printf("Введите элементы массива:\n");
Ввод элементов массива:
for (i = 0; i < N; i++)
{
printf("A[%d]=", i);
scanf("%f", &A[i]);
}
Обмен значениями элементов массива, если i-ый элемент больше j-ого элемента (сортировка):
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
if (A[i] > A[j])
{
B = A[i];
A[i] = A[j];
A[j] = B;
}
Вывод отсортированного массива:
printf("Отсортированный массив:\n");
for (i = 0; i < N; i++)
printf("A[%d]=%.2f\n", i, A[i]);
Листинг:
#include <stdio.h>
#include <windows.h>
#define N 10
int main(void)
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float B, A[N];
int i, j;
printf("Введите элементы массива:\n");
for (i = 0; i < N; i++)
{
printf("A[%d]=", i);
scanf("%f", &A[i]);
}
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
if (A[i] > A[j])
{
B = A[i];
A[i] = A[j];
A[j] = B;
}
printf("Отсортированный массив:\n");
for (i = 0; i < N; i++)
printf("A[%d]=%.2f\n", i, A[i]);
}
2.4 Тестирование
Сортировка по убыванию: от наибольшего (7952.57) к наименьшему (-426.76)
Рис. 2
3. Решение задачи
3.1 Анализ задачи и формальная постановка
Анализ задачи.
Написать программу с двумерным массивом, в котором нужно будет вычислить сумму и количество положительных элементов массива, используя циклы с учетом того, что второй индекс массива является “столбцом”, и условие проверки является ли число положительным, а затем вывести через два цикла сначала сумму, а потом кол-во.
Формальная постановка задачи.
Входные данные:
A[N][M] - матрица размера N на M с элементами целочисленного типа int;
Выходные данные:
S[M] - суммы каждого столбца матрицы A[N][M];
K[M] - кол-во полож. эл. кажд. столбца матрицы A[N][M];
Промежуточные данные:
i, j - индексы для работы с массивами;
Метод решения:
алгоритм программный массив одномерный
for (j = 0; j < M; j++)
for (i = 0; i < N; i++)
{
S[j] = S[j] + A[i][j];
if (A[i][j] > 0)
K[j] = K[j] + 1;
}
3.2 Проектирование
Алгоритм с циклами и условием:
Рис. 3
3.3 Реализация
Ввод элементов массива A размера N на M и инициализация двух массивов S и K, в которые будут записаны суммы и кол-ва полож. эл. массива A:
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
{
printf("A[%d][%d]=", i, j);
scanf("%d", &A[i][j]);
S[j] = 0; K[j] = 0;
}
Вывод элементов массива А в виде матрицы на экран:
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
printf("%6d",A[i][j]);
printf("\n");
}
Вычисление суммы каждого столбца и нахождение кол-ва полож. элементов матрицы А:
for (j = 0; j < M; j++)
for (i = 0; i < N; i++)
{
S[j] = S[j] + A[i][j];
if (A[i][j] > 0)
K[j] = K[j] + 1;
}
Вывод суммы и кол-ва полож. эл. матрицы А в две строки:
printf("Суммы каждого столбца матрицы:");
for (j = 0; j < M; j++)
printf("%5d", S[j]);
printf("\n");
printf("Кол-во пол. эл. кажд. столбца:");
for (j = 0; j < M; j++)
printf("%5d", K[j]);
printf("\n");
Листинг:
#include <stdio.h>
#include <windows.h>
#define N 3
#define M 4
int main(void)
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int A[N][M], S[N], K[N];
int i, j;
printf("Введите элементы массива:\n");
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
{
printf("A[%d][%d]=", i, j);
scanf("%d", &A[i][j]);
S[j] = 0; K[j] = 0;
}
printf("\n");
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
printf("%6d",A[i][j]);
printf("\n");
}
for (j = 0; j < M; j++)
for (i = 0; i < N; i++)
{
S[j] = S[j] + A[i][j];
if (A[i][j] > 0)
K[j] = K[j] + 1;
}
printf("Суммы каждого столбца матрицы:");
for (j = 0; j < M; j++)
printf("%5d", S[j]);
printf("\n");
printf("Кол-во пол. эл. кажд. столбца:");
for (j = 0; j < M; j++)
printf("%5d", K[j]);
printf("\n");
system("pause");
}
3.4 Тестирование
Рис. 4. Матрица 3х4
Заключение
Были изучены методы создания массивов переменных, а также способы их применения. Были также выполнены задания с использованием массивов как одномерных, так и двумерных.
Размещено на Allbest.ru
Подобные документы
Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.
курсовая работа [1,7 M], добавлен 06.01.2014Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.
курсовая работа [1,1 M], добавлен 20.05.2014Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012Изучение элементов языка С++, программирование разветвлений и циклов с использованием операторов условного и перехода. Обработка одномерных массивов. Поиск максимального элемента массива с заданной размерностью. Листинги программы и результатов.
курсовая работа [647,7 K], добавлен 05.02.2013