Лабораторная. Лабораторная работа 5. Смирнов. Отчет по дисциплине Цифровая грамотность Программирование циклических алгоритмов с постусловием.
Скачать 0.65 Mb.
|
МИНОБРНАУКИ РОССИЙСКОЙ ФЕРЕДАЦИИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ" (ОмГТУ) Кафедра « Прикладная математика и фундаментальная информатика » ОТЧЕТ по дисциплине «Цифровая грамотность» « Программирование циклических алгоритмов с постусловием. » Принял: Преподаватель: Моисеева Н. А. ______________________ подпись, дата Выполнил: Студент гр. АТП-211 Смирнов Р.В. ______________________ подпись, дата Омск 2021 Тема. Научиться программировать циклические алгоритмы с постусловием на языке С (Си). Задание 1. 1.1. Выполнить Пример 1.1. и построить ГСА. Организовать проверку, что пользователь ввел число от 0 до 10 Листинг для Примера 1. ГСА: Код: #include int main( int argc, char *argv [] ) { int num = 0 ; do { printf( "Enter a number from 0 to 10: " ); scanf( "%d" , &num); } while ((num < 0 ) || (num > 10 )); printf( "You entered a number: %d\n" , num); } Ввод: -1 15 7 Вывод: 1.2. Выполнить Пример 1.2. и построить ГСА. Модифицируйте Пример 1.2. следующим образом: выведите на экран числа кратные 3. Найти сумму кратных 3 чисел от 1 до N и подсчитать их количество. Листинг для Примера 2. ГСА: Код: #include int main( int argc, char *argv [] ) { int i = 1 , n, summ = 0 , amount = 0 ; printf( "Enter a number: " ); scanf( "%d" , &n); do { if (i % 3 == 0 ) { amount++; summ += i; printf( "%d\n" , i); i += 3 ; continue ; } i++; } while (i <= n); } Ввод: 21 Вывод: 1.3. Выполнить Пример 1.3. и построить ГСА. Модифицируйте Пример 1.3. следующим образом: выведите на экран все слагаемые и максимальное из них. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... c точностью до E = 0.00001. Листинг для примера 1.3. ГСА: Код: #include int main( int argc, char *argv [] ) { float E = { 0.00001 }, s = { 0 }, r; int i = 1 ; do { r = 1.0 / (i * i); s += r; i++; } while (r > E); printf( "Summa = %9.5f\n" , s); } Вывод: Задание 2. 2.1. Для фрагментов ГСА (рис. 1, 2, 3) составить программный код на языке программирования Си. Код: #include int main( int argc, char *argv [] ) { int m = 2 , c = 7 , d = 5 , j = - 7 , f = - 2 , k = 8 ; do { c -= 2 ; } while (m < c); printf( "c=%d\n" , c); do { j += 2 ; } while (d > j); printf( "j=%d\n" , j); do { f += 2 ; } while (k - f > f); printf( "f=%d\n" , f); } Вывод: 2.2. Найти сумму первых десяти целых чисел. Изучить псевдокод ГСА (рис. 4). Код: #include int main( int argc, char *argv [] ) { int S = 0 , a = 1 ; do { S += a; a++; } while (a <= 10 ); printf( "S=%d\n" , S); } Вывод: Задание 3. Разработать ГСА для цикла с постусловием и программу на языке программирования Си в соответствии с индивидуальным заданием. Строки программного кода сопроводить комментариями. 3.1. 10.Найти наибольшее целое четырехзначное число, которое при делении на 7 дает в остатке 5. ГСА: Код: #include #include int main( int argc, char *argv [] ) { int i = 10000 ; do //цикл do while с условием, что остаток от деления i на 7 не равен 5 { i--; printf( "i=%4.d, i mod 7 =%d\n" , i, i % 7 ); } while (i % 7 != 5 ); //если остаток от деления i на 7 равен 5 printf( "Required number i=%d\n" , i); } Вывод: 3.2. 10. В диапазоне от 1000 до 2000 найти произведение и количество чисел, кратных 76 (напечатать исходные числа в строку). ГСА: Код: #include int main( int argc, char *argv [] ) { int i = 1000 , amount = 0 , min = 10e6 ; unsigned long proizv = 1 , summ = 0 ; do //перебираем все числа в цикле do while от 1000 до 2000 { if (i % 76 == 0 ) //если число делится нацело на 76 { proizv *= i; //произведение summ += i; //сумма amount++; //количество чисел if (i < min) min = i; //минимальное число } i++; } while (i <= 2000 ); printf( "Proizv=%lu, amount=%d, summ=%lu, min=%d\n" , proizv, amount, summ, min); } Вывод:  |