Файл: Отчет раздел Мах оценка Итог оценка Постановка.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 39

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Федеральное государственное автономное образовательное

учреждение высшего образования "Национальный исследовательский университет

"Высшая школа экономики"

Московский институт электроники и математики им. А.Н. Тихонова НИУ ВШЭ

Департамент компьютерной инженерии (или департамент электронной инженерии)

 

Курс: Алгоритмизация и программирование

ОТЧЕТ


Раздел

Мах

оценка

Итог.

оценка

Постановка

0,5




Метод

1




Спецификация

0,5




Алгоритм

1,5




Работа программы

1




Листинг

0,5




Тесты

1




Вопросы

2




Доп. задание

2



по лабораторной работе №_2_

Студент:

Зверев Алексей Денисович

Группа:БИВ221

Вариант: № 10 (4, 1)

Руководитель: Ерохина Елена Альфредовна

Оценка:__________

Дата сдачи__________

МОСКВА 2022

Оглавление


Содержание……………………………………………………………………………………………………………………………………1

Задание………………………………………………………………………………………………………………………..…………………2

Постановка задачи………………………………………………………………………………………………………………………………3

Метод решения……………………………………………………………………………………………………………………………………4

Внешняя спецификация
………………………………………………………………………………………………………………………5

Описание алгоритма на псевдокоде……………………………………………………………………………………………………7

Листинг программы……………………………………………………………………………………………………………………………11

Тесты……………………………………………………………………………………………………………………………………17

Задание

  1. Даны целочисленная матрица D[1:n, 1:m]. Удалить путем сдвига все строки матрицы, содержащие только чётные элементы.

  2. Сформировать новый массив, содержащий суммы цифр каждого элемента исходного массива.

Постановка Задачи

Дано:

  1. m, n-цел. , D[1:n, 1:m]-цел.

  2. n-цел., D[1,n]-цел.

Результат:

  1. D[1:k, 1:m]-цел. или “НИ одна строка не была удалена” или “Все строки были удалены”

  2. R[1,n]-цел.

При:

  1. ,



Связь:








Метод решения задачи





Внешняя спецификация


Лабораторная работа № 2



Задание 1



Введите высоту матрицы

Введите длину матрицы



Массив из <> элементов

<> <>…<>

Введите <<от 1 до n>> элемент массива



Введите длину массива

Задание 2

При k=n

Ни одна строка не была удалена

Иначе

При k=0

Все строки были удалены

Иначе

Матрица <> <>

<> <>……<>

Введите элемент массива <<от 0 до n>> <<от 0 до m>>


Описание алгоритма на псевдокоде

Алг “Лабораторная работа №2.1”

нач

{Задание 1}

вывод(“Лабораторная работа №2”)

вывод(“Задание 1”)

вывод(“Введите длину матрицы D”)

ввод(n)

вывод(“Введите высоту матрицы D”)

ввод(m)

цикл от i := 0 до n

цикл от j := 0 до m

вывод(“Введите”, I, j, “элемент матрицы”)

ввод(D[i][j])

кц

кц

цикл от i := 0 до n

flag:=0

цикл от j := 0 до m

если D[i][j]%2!=0

flag:=1

все

кц

если flag:=1

цикл от j:=0 до m

R[k][j]=R[i][j]

кц

кц

вывод (“Матрица D из”, k, j,” элементов: ”)

вывод(D[1:k][1:j])

кон

Алг “Лабораторная работа №2.2”

нач

{Задание 2}

вывод(“Лабораторная работа №2”)

вывод(“Задание 2”)

вывод(“Введите длину массива D”)

ввод(n)

цикл от i := 0 до n

вывод(“Введите “,I,”элемент массива”)

ввод(D[i])

кц

цикл от i := 0 до n

a:= D[i]

s:=0

циклпока a>0

s=s+(a%10)

a=a/10

кц

R[i]=s

цикл от i:=0 до n

вывод(“Массив R из “,n,”элементов”)

вывод(R[1:n])

кц

кон

Листинг программы

#include

#include

#include

#include

#define lmax 200

int main()

{

int h, l, n, i, j, range, k, flag;

int D[lmax][lmax];

printf("Лабораторная работа №2\n");

printf("Введите длинну матрицы");

scanf("%d",&l);

printf("Введите высоту матрицы");

scanf("%d",&h);

printf("Введите диапазон");

scanf("%d",&range);

for (i = 0; i < h;i++)

{

for (j = 0; j < l; j++)

{

D[i][j]=rand() % range+1;

}

}

for (i = 0; i < h;i++)

{

for (j = 0; j < l; j++)

{

printf("%8d",D[i][j]);

}

printf("\n");

}

//задание 1

printf("Задание №1\n");

for (i = 0; i < h;i++)

{

flag=0;

for (j = 0; j < l; j++)

{

if (D[i][j]%2!=0)

{

flag=1;

break;

}

}

printf("%d \n",flag);

if (flag==1)

{

for (j = 0; j < l; j++)

{

D[k][j]=D[i][j];

}

k++;

}

}

h=k;

for (i = 0; i < h;i++)

{

for (j = 0; j < l; j++)

{

printf("%8d",D[i][j]);

}

printf("\n");

}

}

#include

#include

#include

#include

#define lmax 200

int main()

{

int h, l, n, i, j, range, k, flag, a, s=0;

int R[lmax],D[lmax];

printf("Лабораторная работа №2\n");

printf("Введите длинну массива");

scanf("%d",&h);

printf("Введите диапазон");

scanf("%d",&range);

for (i = 0; i < h;i++)

{

D[i]=rand() % range+1;

}

for (i = 0; i < h;i++)

{

printf("%8d",D[i]);

}

printf("\n");

for (i = 0; i < h;i++)

{

a = D[i];

s=0;

while (a>0)

{

s=s+(a%10);

a=a/10;

}

R[i]=s;

}

for (i = 0; i < h;i++)

{

printf("%8d",R[i]);

}

}




Исходные данные

Результаты

1

  1. n=3

m=3

D=1,2,3

4,5,6

7,8,9

  1. n=8

D=[384,887,778,916

794,794,336,387,493]


  1. Ни одна строка не была удалена

  2. R=[15,23,22,16,20,12,18,16]

2

  1. n=3

m=3

D=1,2,3

4,4,4

7,8,9

  1. n=8

D=[384,887,778,916

794,794,336,387,493]


  1. D=1,2,3

7,8,9

  1. R=[15,23,22,16,20,12,18,16]

3

  1. n=3

m=3

D=2,2,2

4,4,4

8,8,8

  1. n=8

D=[384,887,778,916

794,794,336,387,493]


1.Все строки были удалены

2. R=[15,23,22,16,20,12,18,16]
Тесты