Основы алгоритмизации и программирования
Работа с одномерными и двухмерными массивами: составление функций нахождения заданных элементов, их количества и суммы под и над главной диагональю, поиск среднего арифметического. Составление блок-схемы, написание текста программы, его тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 27.12.2010 |
Размер файла | 52,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ГОУ СПО СО "Асбестовский политехникум"
Специальность: "Программное обеспечение вычислительной техники и автоматизированных систем"
ДОМАШНЯЯ КОНТРОЛЬНАЯ РАБОТА
по дисциплине "Основы алгоритмизации и программирования"
ТЕХНИЧЕСКИЙ ОТЧЕТ
ДК ОАиП 25.00 ТО
Преподаватель Студент группы ПОВТ-2-1
О.Н. Савина Д.А. Савин
2010 г 05.03.2010 г.
2010
Содержание
- Задача 1
- 1.1 Постановка задачи
- 1.2 Метод решения
- 1.3 Блок-схема
- 1.4 Листинг программы
- 1.5 Тестинг программы
- Задача 2
- 2.1 Постановка задачи
- 2.2 Метод решения
- 2.3 Блок-схема
- 2.4 Листинг программы
- 2.5 Тестинг программы
- Задача 3
- 2.1 Постановка задачи
- 2.2 Метод решения
- 3.3 Блок-схема
- 3.4 Листинг программы
- 3.5 Тестинг программы
- Задача 4
- 4.1 Постановка задачи
- 4.2 Метод решения
- 4.3 Блок-схема
- 4.4 Листинг программы
- 4.5 Тестинг программы
ЗАДАЧА 1
В одномерном массиве найти элементы, заканчивающиеся на 3. Использовать функцию. Найти максимальный из них.
1.1 Постановка задачи
Исходные данные: mas[n] - одномерный массив, где n - количество элементов.
Результат: Изменённый изначальный массив - mas3[n], максимальный элемент, который заканчивается на 3 - max.
1.2 Метод решения
- Составляем функцию, которая будет находить элементы, заканчивающиеся на 3.
- Заполняем массив данными, которые вводим с клавиатуры
- Находим элементы, заканчивающиеся на 3, с помощью цикла с параметром.
- Находим максимальный элемент, заканчивающийся на 3.
- Выводим изменённый массив через цикл с параметром, и максимальный элемент, заканчивающийся на 3.
- 1.3 Блок-схема
1.4 Листинг программы
/* В одномерном массиве найти элементы, заканчивающиеся на 3. Использовать функцию. Найти максимальный из них. */
#include<iostream.h>
#include<conio.h>
#define n 5
// функция
long int fy(long int a)
{ if(a%10==3)
return a;
else return 0;}
void main()
{clrscr();
long int mas[n],mas3[n],max=0;
int d=0,i;
// вводим массив
cout<<"vvedite massive"<<'\n';
for (i=0;i<n; i++)
cin>>mas[i];
// массив
cout<<"massive:"<<'\n';
for (i=0;i<n; i++)
cout<<mas[i]<<'\t';
// находим элементы, заканчивающиеся на 3
for (i=0;i<n;i++)
{mas3[d]=fy(mas[i]);
if (mas3[d]!=0)
d=d+1;}
// находим максимальный элемент, заканчивающий на 3
for (i=0;i<d; i++)
if (mas3[i]>max)
max=mas3[i];
cout<<'\n';
// вывод результатов на экран
cout<<"elements with end for 3:"<<'\n';
for (i=0;i<d; i++)
cout<<mas3[i]<<'\t';
cout<<'\n';
cout<<"max="<<max<<'\n';
}
1.5 Тестинг программы
Тест 1) Введите массив 5 3 43 6 103 Изменённый массив 3 43 103
Максимальный элемент, заканчивающийся на 3
103 Тест 2) Введите массив 133 131 312 213 333 Изменённый массив 133 213 333
Максимальный элемент, заканчивающийся на 3
333
ЗАДАЧА 2
В одномерном массиве найти элемент, который кратен 7, и после него вставить число, определяющее место этого элемента в массиве. Если таких нет, то вывести соответствующее сообщение.
2.1 Постановка задачи
Исходные данные: mas[n] - одномерный массив, где n - количество элементов.
Результат: Изменённый изначальный массив - mas, где удалены чётные элементы.
2.2 Метод решения
- Заполняем массив данными, которые вводим с клавиатуры
- Находим элемент кратный 7 через цикл с параметром.
- Вставляем число, определяющее место этого элемента в массиве.
- Выводим результаты на экран.
- Если таких элементов в массиве нет, то выводим соответствующее сообщение.
2.3 Блок-схема
2.4 Листинг программы
/* В одномерном массиве найти элемент, который кратен 7, и после него вставить число, определяющее место этого элемента в массиве. Если таких нет, то вывести соответствующее сообщение. */
#include<iostream.h>
#include<conio.h>
#define n 8
void main()
{clrscr();
int mas[n], i, p=-1;
//вводим массив
cout<<"vvedite massive"<<'\n';
for(i=0;i<n; i++)
cin>>mas[i];
//массив
cout<<"massive:"<<'\n';
for(i=0;i<n; i++)
cout<<mas[i]<<'\t';
//находим элемент кратный 7
for(i=0;i<n; i++)
if (mas[i]%7==0)
{p=i;
break;}
//вставляем после первого такого элемента его позицию в массиве и выводим новый массив
if (p!=-1) {for(i=n; i>p+1;i--)
mas[i]=mas[i-1];
mas[p+1]=p;
cout<<"end massive"<<'\n';
for(i=0;i<n+1;i++)
cout<<mas[i]<<'\t';}
//вывод сообщения если таковых нет
else {cout<<endl;
cout<<"v massive net elementa kratnogo chislu 7";}
}
2.5 Тестинг программы
Тест 1) Начальный массив 1 4 3 5 7 6 4 3 Конечный массив 1 4 3 5 7 4 6 4 3 Тест 2) Начальный массив 1 2 3 4 5 6 8 9 Вывод сообщения
"В массиве нет элемента кратного числу 7"
ЗАДАЧА 3
В двумерном массиве найти среднее арифметическое значение нечётных элементов расположенных над главной диагональю, и среднее арифметическое чётных элементов, расположенных под главной диагональю.
3.1 Постановка задачи
Исходные данные: mas[n][n] - где n число строк и число столбцов (квадратная матрица), kch - количество чётных, knch - количество нечётных, sumch - сумма чётных, sumnch - сумма нечётных.
Результат: среднее арифметическое значение нечётных элементов, расположенных над главной диагональю, и среднее арифметическое значение чётных элементов, расположенных под главной диагональю.
3.2 Метод решения
- Заполняем двумерный массив mas [n][n].
- Находим количество и сумму нечётных элементов над главной диагональю.
- Находим количество и сумму чётных элементов под главной диагональю.
- Находим среднее арифметическое значение чётных и нечётных.
- Записываем 2 ответа.
3.3 Блок-схема
3.4 Листинг программы
/* В двумерном массиве найти среднее арифметическое значение нечётных элементов расположенных над главной диагональю, и среднее арифметическое чётных элементов, расположенных под главной диагональю.*/
#include<iostream.h>
#include<conio.h>
#define n 3
void main()
{clrscr();
int i, j, kch=0,knch=0,mas[n][n];
float srch, srnch, sumch=0,sumnch=0;
//вводим массив
cout<<"vvedite massive"<<'\n';
for(i=0;i<n; i++)
for(j=0;j<n; j++)
cin>>mas[i][j];
//массив
cout<<"massive:"<<'\n';
for(i=0;i<n; I++)
{for(j=0;j<n; j++)
cout<<mas[i][j]<<'\t';
cout<<'\n';}
for(i=0;i<n; i++)
for(j=0;j<n; j++)
{if ((i<j)&&(mas[i][j]%2==0))
//кол-во и сумма нечётных элементов расположенных над главной диагональю
{knch++;
sumnch=sumnch+mas[i][j];}
if ((i>j)&&(mas[i][j]%2==0))
//кол-во и сумма чётных элементов расположенных под главной диагональю
{kch++;
sumch=sumch+mas[i][j];};}
//среднее арифметическое
srnch=sumnch/knch;
srch=sumch/kch;
//вывод результатов на экран
cout<<"srednee arifm. nechetnikh= "<<srnch<<'\n';
cout<<"srednee arifm. chetnikh= "<<srch<<'\n';}
3.5 Тестинг программы
Тест 1) n=3 Массив 1 2 3
4 5 6
7 8 9
Сумма нечётных = 3;
Количество нечётных = 1;
Среднее арифметическое = 3
Сумма чётных = 12;
Количество чётных = 2;
Среднее арифметическое = 6
Тест 2) n=4
Массив
1 2 3 4
5 6 7 8
1 2 3 4
9 8 7 6
Сумма нечётных = 10;
Количество нечётных = 2;
Среднее арифметическое = 5
Сумма чётных = 10;
Количество чётных = 2;
Среднее арифметическое = 5.
ЗАДАЧА 4
В двумерном массиве удалить столбец, в котором находятся 3 отрицательных элемента. Если такого нет, то удалить первый.
4.1 Постановка задачи
Исходные данные: mas [n][m] - двумерный массив, где n - количество строк, а m - количество столбцов.
Результат: Массив с удалённым столбцом.
4.2 Метод решения
- Вводим с клавиатуры mas [n][m].
- Находим столбец, в котором 3 отрицательных элемента.
- Удаляем столбец, в котором 3 отрицательных элемента.
- Удаляем 1 столбец, если нет столбцов с 3 отрицательными элементами.
- Выводим mas[i][j].
4.3 Блок-схема
4.4 Листинг программы
/* В двумерном массиве удалить столбец, в котором находятся 3 отрицательных элемента. Если такого нет, то удалить первый.*/
#include<iostream.h>
#include<conio.h>
#define n 3
#define m 3
void main()
{clrscr();
int h,i,j,mas[n][m],p=0,sum;
//вводим массив
cout<<"vvedite massive"<<'\n';
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>mas[i][j];
//массив
cout<<"massive:"<<'\n';
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
cout<<mas[i][j]<<'\t';
cout<<'\n';}
//находим строку в которой 3 отрицательных элемента
for(j=0;j<m;j++)
{sum=0;
for(i=0;i<n;i++)
if (mas[i][j]<0)
sum++;
if (sum>2)
{for(h=j;h<m-1;h++) //удаляем строку в которой 3 отрицательных элемента
for(i=0;i<n;i++)
mas[i][h]=mas[i][h+1];
p=1;
break;};}
if (p==0) //удаляем 1 строку т.к. нет строк с 3 отрицательными элементами
for(j=0;j<m-1;j++)
for(i=0;i<n;i++)
mas[i][j]=mas[i][j+1];
//вывод результатов на экран
cout<<"end massive"<<'\n';
for(i=0;i<n;i++)
{for(j=0;j<m-1;j++)
cout<<mas[i][j]<<'\t';
cout<<'\n';}
}
4.5 Тестинг программы
Тест 1) Введите массив
2 -3 3
1 -1 2
3 -4 6
Конечный массив
2 3
1 2
3 6
Тест 2) Введите массив
2 3 3
1 1 2
3 4 6
Конечный массив
3 3
1 2
4 6
Подобные документы
Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Структурная диаграмма программного модуля. Нахождение суммы элементов, находящихся над главной диагональю. Реализация программного модуля: код программы; описание использованных операторов и функций. Особенности тестирования программного модуля.
курсовая работа [146,6 K], добавлен 01.09.2010Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.
курсовая работа [1,3 M], добавлен 02.12.2009Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.
контрольная работа [173,3 K], добавлен 01.03.2010Составление блок-схемы алгоритма решения задачи, погрешности вычисления суммы членов числового ряда. Разработка программ на языке на Visual Basic, работа с массивами. Особенности работы со строковыми данными. Варианты реализации формы приложения.
контрольная работа [220,4 K], добавлен 18.06.2010Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы.
контрольная работа [204,4 K], добавлен 26.01.2013Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.
реферат [276,9 K], добавлен 27.02.2008