Мегаобучалка Главная | О нас | Обратная связь


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



2019-12-29 237 Обсуждений (0)
Лабораторная работа № 3 0.00 из 5.00 0 оценок




Тема: Программы циклической структуры.

Цель работы - овладение практическими навыками разработки и программирования вычислительного процесса циклической структуры.

Задания для самостоятельной подготовки

1. Изучить:

       ─ организацию алгоритмов циклической структуры с заданным числом повторений;

       ─ возможности языка программирования для построения таких циклов;

Разработать алгоритм решения в соответствии с заданием.

Составить программу решения задачи.

 

  В языке Си основной структурой, управляющей повторением, служит цикл с предусловием while (пока). Он имеет следующий формат

while (условие) оператор;

Условие всегда заключено в скобки, оно может быть произвольным выражением. Оператор while повторяет выполнение оператора следующего условия, до тех пор, пока это условие истинно. Если это условие не истинно с самого начала или становится не истинным в процессе выполнения данного оператора, то управление передается оператору, следующему за оператором цикла. Если повторяемая часть оператора содержит более одного оператора, то повторяемая группа операторов должна быть заключена в фигурные скобки, например:

while (условие) { оператор_1; оператор_2; .... оператор }

Для описания условий в операторе while используются операции условия такие же, как и в операторе if . Приведенная ниже программа подсчитывает сумму цифр введенного числа N. Цикл while последовательно выделяет и суммирует цифру исходного числа, начиная с последней; для выделения применяется операция взятия остатка от деления - %. При делении целых чисел любая дробная часть отбрасывается, поэтому после операции N = N /10; исходное число уменьшается в 10 раз при каждом "обороте" цикла, пока, наконец, не станет равным нулю, после чего цикл завершается и на экран дисплея выдается значение переменной S, в котором содержится сумма цифр числа N.

Пример 1.6

#include <stdio.h> main() { int N,S,Z; S=0; printf("ВВЕДИ N\n"); scanf("%d",&N) while(N!=0) { Z=N%10 N=N/10 S=S+Z; } printf("СУММА ЦИФР=%d\n",S); }

Рассмотрим еще один пример. Здесь приведена программа, которая реализует алгоритм разложения числа на простые множители. Для сокращения времени счета отдельно рассматривается случай множителя, равного двум, чтобы в последующем рассматривать только нечетные множители.

Пример 1.7

/*РАЗЛОЖИТЬ ЧИСЛО НА МНОЖИТЕЛИ */ #include <stdio.h> main() { int M,i=3; printf("ВВЕДИ M\n"); scanf("%d",&M); printf("%d=1",M); while(M%2==0) { printf("*%d",2); M=M/2; } while(i <=M) { if(M%i==0) { printf("*%d",i); M=M/i; } else i=i+2 } }

Иногда структуры со вложенными друг в друга операторами повторения называются циклами. Следующая программа простая, хотя и содержит вложенные циклы. Она выводит на экран заполненный символом * треугольник, высота которого равна N.
Во внешнем цикле устанавливается очередная строка вывода (параметр i ), а во внутреннем (параметр j ) в очередную строку вводится ровно i символов " * " Вызов функции printf ("\ n ") обеспечивает в нужный момент переход на новую строку. Обратите внимание, что для вывода одного символа в форматной строке функции printf используется спецификация % c.

Пример 1.8

#include <stdio.h> main() { int i,j,N; printf("ВВЕДИ N \n"); scanf("%d",&N); i=1; while(i <=N) { j=1; while(j <=i) { printf("%c",'*'); j=j+1; } i=i+1; printf("\n"); } }

Рассмотрим еще один пример, в котором используется сложный цикл. Программа позволяет найти в заданном интервале все совершенные числа. Напомним, что натуральное число называется совершенным, если оно равно сумме всех своих делителей, считая его самого. Известно, что все совершенные числа - четные и что первое совершенное число из натурального ряда чисел равно 6. Этим объясняется начальное значение параметра внешнего цикла. Так как все натуральные числа имеют своим делителем единицу, полагаем начальное значение суммы делителей числа S=1. Во внутреннем цикле организуется перебор всех множителей текущего значения N. Из теории чисел известно, что такому испытанию имеет подвергать числа от 2 до N/2, либо даже до корень из N. Это очень несовершенный алгоритм и если вы захотите его выполнить на ЭВМ, имейте ввиду, что программа работает слишком долго. Более эффективно алгоритм будет реализован попозже.

Пример 1.9

#include <stdio.h> main() { int j,N,M,S; printf("ВВЕДИ M\n"); scanf("%d",&M); N=4; while(N<=M) { S=1;j=2; while(j<=N/2) { if(N%j==0) S=S+j; j=j+1; } if(N==S) printf("%d- СОВЕРШЕННОЕ ЧИСЛО\n",N); N=N+2; } }

 

Варианты задач

Вычислить значение функции при заданных значениях параметров. Значения параметров задаются пользователем с клавиатуры.

1. z=2n, n

2. p= n!; n

3.

4.

5. M=a(a+1)…(a+n-1);

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

 



2019-12-29 237 Обсуждений (0)
Лабораторная работа № 3 0.00 из 5.00 0 оценок









Обсуждение в статье: Лабораторная работа № 3

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (237)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)