Методы создания массивов переменных и способы их применения

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

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