Циклы while решение задач

Циклы while решение задач thumbnail

Назад в начало

Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.

i = 0

while i 5:

(i)

i += 1

# Вывод:

>>> 0

>>> 1

>>> 2

>>> 3

>>> 4

Цикл while и цикл for имеют схожую структуру, НО есть одно важное различие – цикл while может быть бесконечным.

i = 0

while True:

(i)

i += 1

# Вывод:

>>> 0

>>> 1

>>> 2

>>> 3

>>> 4

# Это может продолжаться долго…

Код выше будет бесконечно печатать возрастаютщую последовательность чисел.

Цикл while можно сравнить с цикличным условным оператором.

text = ‘Hello world’

i = 0

while i len(text):

(text[i])

i += 1

# Вывод:

>>> H

>>> e

>>> l

>>> l

>>> o

>>>

>>> w

>>> o

>>> r

>>> l

>>> d

Код, приведенный выше, печатает строку посимвольно. Приведу пример аналогичного цикла for:

text = ‘Hello world’

for i in text:

(i)

# Вывод:

>>> H

>>> e

>>> l

>>> l

>>> o

>>>

>>> w

>>> o

>>> r

>>> l

>>> d

Более того, я приведу даже два цикла for!

text = ‘Hello world’

for i in range(len(text)):

(text[i])

Напомню, что отличие между двумя, приведенными выше примерами, в следующем: первый цикл проходит по элементам последовательности (в нашем случае строки), а второй – по ее индексам. Здесь также используется функция len(), которая позволяет узнать длину последовательности.

Вернемся к циклу while. Цикл while, как и цикл for, можно остановить с помощью специальной управлющей конструкции break.

j = 0

while True:

if j == 3:

(‘Выход из цикла’)

break

(j)

j += 1

# Вывод:

>>> 0

>>> 1

>>> 2

>>> Выход из цикла

Конструкция break прерывает цикл. Она очень похожа на обычное условие после ключевого слова while.

Так же есть еще одна управляющая конструкция – continue. С ее помощью мы можем не выпонять текущую итерацию (повторение) цикла и перейти сразу к следующему.

j = 0

while j 5:

j += 1

if j == 3:

(‘Пропускаем j == 3’)

continue

(j)

# Вывод:

>>> 1

>>> 2

>>> Пропускаем j == 3

>>> 4

>>> 5

Как и для цикла for, для цикла while мы можем записать конструкцию else.

from random import randint

j = 0

element = randint(0, 15)

while j 10:

j += 1

if j == element:

(‘Нашли element, он равен’, element)

break

else:

(‘Неудачная попытка’)

Примеры решения задач

Возведение числа в степень с помощью цикла while

n = int(input()) # число

k = int(input()) # степень

i = 1 # текущая степень

result = 1

while i k:

result *= n

i += 1

(result)

Сумма последовательности с помощью цикла while

n = int(input())

result = 0

i = 0

while i n:

result += i

i += 1

(result)

Ввод последовательности чисел

i = 0

while True:

n = input()

if n == ‘end’:

(‘Ввод закончен’)

(‘Было введено’, i, ‘чисел’)

break

n = int(n)

i += 1

Сумма введенных чисел

i = 0

summa = 0

while True:

n = input()

if n == ‘end’:

(‘Ввод закончен’)

(‘Было введено’, i, ‘чисел’)

(‘Их сумма равна’, summa)

break

n = int(n)

summa += n

i += 1

Решение задач

1. Дано положительное число N. Вывести все числа от 0 до N с помощью цикла while.

2. Дано положительное число N. Вывести все числа от N до 0 с помощью цикла while. Пример:

Ввод: N = 10

Вывод: 10

9

8

7

6

3. Даны два положительных числа K и N (K

4. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A (взятие остатка A % B)

5. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A (деление нацело A // B)

6. Дано положительное число N. Найти сумму всех четных чисел от 0 до N с помощью цикла while.

7. Даны два положительных числа K и N (K нечетных чисел от K до N с помощью цикла while.

8. Дано положительное число N. Найти факториал числа N. Факториалом числа называется произведение всех чисел от 1 до N. Например, факториал числа 5 равен 5! = 1*2*3*4*5 = 120, 2! = 1*2 = 2, 9! = 1*2*3*4*5*6*7*8*9 = 362880

9. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести YES, если не является – вывести NO.

10. Дано целое число N (> 0). Найти двойной факториал N: N!! = N * (N-2) * (N-4)* …. Для решения этой задачи посмотрите на задачу 2

Сложные задачи

1. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3^K > N, где 3^K – это 3 в степени K или число 3, умноженное само на себя K раз. Например, 3^5 = 3*3*3*3*3. Ответом в задаче будет первая степень числа 3, которая больше, чем заданное число N. Например, если N=41, распишем степени числа три: 3^1 = 3; 3^2 = 3*3 = 9; 3^3 = 3*3*3 = 27; 3^4 = 3*3*3*3 = 27 * 3 = 81;. Таким образом, первая степень, в которую возвести число 3, превышающая число N – это 4.

В этой задаче нужно выполнять цикл while, пока остаток от деления на число три равен 0

2. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).

Перед решением этой задачи вспомните, как найти сумму цифр трехначного числа.

3. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B) = НОД(B, A mod B), если B = 0; НОД(A, 0) = A.

4. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P – вещественное, 0

5. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1), K = 3, 4, …. Проверить, является ли число N числом Фибоначчи. Если является, то вывести TRUE, если нет – вывести FALSE.

Читайте также:  Що таке інвестиційний цикл

6. Даны положительные числа A, B, C. На прямоугольнике размера A x B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.

7. Дано целое число N (> 1), являющееся числом Фибоначчи: N = F(K). Найти целое число K – порядковый номер числа Фибоначчи N.

Источник

Задачи цикл WHILE

Задача №1

Найти сумму и количество элементов последовательности, которые по модулю больше 0.001.

Последовательность: S = 1/2 – 2/4 + 3/8 – 4/16 + … – …

1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем summa1.pas

2.Присваиваем переменной sum значение ноль, переменной a=1 и b=2, так как первый элемент 1/2.

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

3.Алгоритм решения задачи:

while a/b > 0.001 do

Задача №2

Вывести все квадраты натуральных чисел, не превосходящие данного числа N.

Пример: N=50 | 1 4 9 16 25 36 491.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем kvadrat.pas

2.Алгоритм решения задачи:

  1. Ввести число N.
  2. Присвоить x единицу.
  3. Пока sqr(x) < n
  4. Увеличить значение x на единицу.

Задача №3

Определить и вывести на экран цифры целого числа n.

Например:

453 mod 10 = 3,

“1 – я цифра справа равна 3”.

45 mod 10 = 5,

2 – я цифра справа равна 5,

3 – й раз;

4 mod 10 = 4,

3 – я цифра справа равна 4,

4 div 10 = 0.

1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем zifru.pas

2.Переменная n для целого числа, p – для цифр числа, i – счетчик цифр.

В разделе операторов

С помощью оператора write выводится на экран запрос для пользователя о вводе целого числа. Оператор readln заносит его значение в память и присваивает переменной n.

Счетчику i устанавливается первоначальное значение 1.

В операторе while записывается условие (пока n не равно 0), при котором цикл будет выполняться.

Так как в цикле несколько операторов, то используются операторные скобки

begin … end.

В них записаны операторы:

p := n mod 10; – определяется последняя цифра;

writeln(i,” – я цифра справа равна “, p); – выводится на экран порядковый номер цифры справа и сама эта цифра;

n := n div 10; – от числа “зачеркивается” последняя цифра;

i := i + 1; – счетчик увеличивается на 1.

Задача №4

Составить программу разложения натурального числа n на простые множители.

Пример: 360 = 2 2 2 3 3 5. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем mnozeteli.pas

2.Алгоритм решения задачи:

В качестве первого делителя взять 2, присвоить это значение некоторой переменной i;

начать цикл “пока i <= n”;

если данное число n делится на i, тогда выдать на экран значение i и разделив данное число на i, присвоить новое значение той же переменной n (n := n div i);

далее цикл продолжить, но значение i не увеличивать на 1, а проверить деление нового значения n на прежнее значение i;

если n не делится на i, тогда i увеличить на 1 (i := i + 1) и продолжить цикл, т.е. выполнить проверку условия цикла (i <= n), а затем снова проверить деление n на уже новое значение i.

Задача №5

Написать программу, в результате выполнения которой выяснится, входит ли цифра 2 в запись данного целого числа n.

Пример: 365842. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем zifra2.pas

2.Алгоритм решения задачи:

1. Начало. Переменные целого типа n, p, k: n – для вводимого числа; p – для цифр этого числа; k – счетчик, подсчитывающий количество цифр в числе, равных 2.

2. Ввод целого числа.

Счетчику k устанавливается первоначальное значение 0.

3. Цикл, пока n <> 0. В цикле, переменной p присваивать значение цифры числа.

Если p = 2, тогда увеличивать k на единицу.

Вычесть из числа n последнюю цифру и разделить его на 10.

Продолжить и закончить цикл.

4. Если k = 0, тогда выдать сообщение: “Цифра 2 не входит в запись числа”, иначе, выдать сообщение: “Цифра 2 входит в запись числа”.

5. Конец.

Задача №6

Составить программу вывода всех натуральных чисел, меньших n, квадрат суммы цифр которых равен заданному числу m.

Пример: 21 и 4, искомые числа 2,11,20. 1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ и сохраните под именем kvadratsummu.pas

2.Алгоритм решения задачи:

1. Раздел описаний.

Переменные: n, m, k, a, p, s. Тип целый.

n – для границы значений натуральных чисел, m – для числа, с которым сравнивается квадрат суммы цифр (точный квадрат), k – для натуральных чисел от 1 до n, a – для запоминания натурального числа, перед тем, как будет определяться сумма его цифр, p – для цифр числа, s – для суммы цифр.

2. Раздел операторов.

Ввод значений n и m. Установить первоначальное значение для k (эта переменная “перебирает” все натуральные числа от 1 до n, k := 1).

Цикл, пока k <= n.

В цикле: установить первоначальные значения для суммы s (s:=0); запомнить число в переменную a (a := k).

Цикл для подсчета суммы цифр, пока k <> 0.

В цикле: выделять по одной цифре числа, известным способом; прибавлять по одной цифре к сумме; уменьшать число на последнюю цифру и на порядок.

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

Проверка выполнения условия.

Если квадрат суммы цифр равен заданному числу,

тогда вывести это натуральное число на экран.

Перейти к проверке следующего числа.

Закончить основной цикл проверки чисел.

3. Закончить программу.

Источник

Оператор цикла WHILE

Задача 1. Дано целое число а и натуральное (целое неотрицательное) число n. Вычислить а в степени n. {Введем целую переменную k, которая меняется от 0 до n, причем поддерживается такое свойство: b = (a в степени k).}

Читайте также:  Пустой цикл в паскале

USES Crt;

VAR

A, N, B, K : INTEGER;

BEGIN

ClrScr;

Write(‘ Введите два значения ‘); ReadLn(A,N);

K := 0; B := 1;

While K <> N DO Begin

K := K + 1; B := B * A;

End;

Write(‘ A в степени N = ‘,B);

END.

Другое решение той же задачи:

USES Crt;

VAR

A, N, B, K : INTEGER;

BEGIN

ClrScr; { Чистка экрана }

Write(‘ Введите два значения ‘); ReadLn(A,N);

K := N; B := 1;

{A в степени N = B * (A в степени K)}

While K <> 0 DO Begin

K := K – 1; B := B * A;

End;

Write(‘ A в степени N = ‘,B);

END.

Задача 2. Даны натуральные числа а, b. Вычислить произведение а*b, используя в программе лишь операции +, -, =, <>.

USES Crt;

VAR

A, B, C, K : INTEGER;

BEGIN

Write(‘ Введите два значения ‘); ReadLn(A,B);

K := 0; C := 0;

While K <> B DO Begin

K := K + 1; C := C + A;

End;

{C = A * K и K = B, следовательно, C = A * B}

Write(‘ A*B= ‘,C);

END.

Задача 3. Дано натуральное (целое неотрицательное) число A и целое положительное число D. Вычислить частное Q и остаток R при делении A на D, не используя операций DIV и MOD. (Согласно определению, А = Q * D + R, 0 <= R < D.)

USES Crt;

VAR

A, D, R, Q : INTEGER;

BEGIN

ClrScr;

Write(‘ Введите два значения ‘); ReadLn(a,d);

R := A; Q := 0;

While Not (R < D) DO Begin

R := R – D; {R >= 0}

Q := Q + 1;

End;

WriteLn(‘ Частное = ‘,Q);

WriteLn(‘ Остаток = ‘,R);

END.

Задача 4. Каждый год урожайность повышается на 5%. Через сколько лет урожай удвоится?

USES Crt;

VAR

YR, KL: BYTE; YRG: REAL;

Begin

ClrScr;

Write(‘Введите урожайность ‘); ReadLn(YR);

YRG:=YR;

While (YRG <2*YR) Do Begin

YRG:=YRG+0.05*YRG;

KL:=KL+1;

End;

WriteLn(‘Новый урожай ‘,YRG:5:0);

Write(‘Через ‘,KL,’ лет урожай удвоится’);

END.

Задача 5. Деду M лет, а внуку N лет. Через сколько лет дед станет вдвое старше внука. И сколько при этом лет будет деду и внуку.

USES Crt;

VAR

M,N: BYTE; Kl: BYTE;

BEGIN

ClrScr;

Write(‘Введите количество лет деда ‘); ReadLn(m);

Write(‘Введите количество лет внука ‘); ReadLn(n);

KL:=0;

While (M>2*N) DO Begin

M:=M+1; N:=N+1; KL:=KL+1;

End;

WriteLn(M,’ лет деду’);

WriteLn(N,’ лет внуку’);

WriteLn(‘Через ‘,KL,’ лет дед вдвое станет старше внука’);

END.

Задача 6. Поле засеяли цветами двух сортов на площади S1 и S2. Каждый год площадь цветов первого сорта увеличивается вдвое, а площадь второго сорта увеличивается втрое. Через сколько лет площадь первых сортов будет составлять меньше 10% от площади вторых сортов.

USES Crt;

VAR

S1,S2:WORD; KL:BYTE;

BEGIN

ClrScr;

Write(‘Введите площадь, которую засеяли цветами 1-го сорта ‘); ReadLn(S1);

Write(‘Введите площадь, которую засеяли цветами 2-го сорта ‘); ReadLn(S2);

KL:=1;

While (S1>0.1*S2) DO Begin

S1:=S1*2; S2:=S2*3; KL:=KL+1;

End;

WriteLn(‘Площадь, которую засеяли цветами 1-го сорта ‘,S1);

WriteLn(‘Площадь, которую засеяли цветами 2-го сорта ‘,S2);

WriteLn(‘Через ‘, kl,’ лет’);

END.

Задача 7. Составить программу перевода числа из 10 системы счисления в 2 систему счисления.

Для этой задачи представлено два решения.

a)

USES Crt;

VAR

DES, OST, I, DW:INTEGER;

BEGIN

ClrScr;

Write(‘Введите десятичное число ‘); ReadLn(DES);

I:=1;

While (DES>=2) DO Begin

OST:=DES mod 2;

DES:=DES div 2;

DW:=DW+OST*I;

I:=I*10;

End;

DW:=DW+DES*I;

Write(‘Двоичная запись числа ‘,DW);

END.

b)

USES Crt;

Const A=10;

VAR

DES, OST, I:INTEGER;

DW:Array[1..100] OF INTEGER;

BEGIN

ClrScr;

Write(‘Введите десятичное число ‘); ReadLn(des);

I:=1;

While (des>=2) DO Begin

OST:=DES mod 2;

DES:=DES div 2;

DW[I]:=OST;

I:=I+1;

End;

DW[I]:=DES;

FOR I:=I DownTo 1 DO

Write(DW[I]);

END.

…………………………………………………………………………………………………………………….

Практические задания

…………………………………………………………………………………………………………………….

  1. Составить программу, печатающую квадраты всех натуральных чисел от 0 до заданного натурального n.

  2. Дано натуральное n, вычислить n! (0!=1, n! = n * (n-1)!).

  3. Последовательность Фибоначчи определяется так: a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2) при k >= 2. Дано n, вычислить a(n).

  4. К старушке на обед ходят кошки. Каждую неделю две кошки приводят свою подружку. В доме у старушки 100 мисок. Через какое время появятся лишние кошки, и сколько кошек при этом останется голодными.

  5. Известна сумма номеров страниц, определить номер страницы.

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

Источник

Содержание

  • 1. Назначение оператора цикла while. Общая форма. Особенности использования
  • 2. Понятие вложенных циклов while
  • 3. Схема оператора while
  • 4. Примеры решения задач с оператором цикла while
    • 4.1. Вывод результатов вычисления в цикле
    • 4.2. Рекурентные алгоритмы. Вычисление n-го члена последовательности
    • 4.3. Вычислить значения числа π с заданной точностью
  • 5. Примеры решения задач, в которых оператор while есть вложенным
    • 5.1. Цикл while есть вложенным в оператор выбора switch
    • 5.2. Цикл while есть вложенным в операторе цикла for
  • Связанные темы

Поиск на других ресурсах:

1. Назначение оператора цикла while. Общая форма. Особенности использования

Оператор цикла while предназначен для организации циклического процесса, в котором выполнение каждой следующей итерации определяется на основе истинности некоторого условия. Оператор цикла while еще называют оператором цикла с предусловием.

Общая форма оператора цикла while следующая:

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

здесь

  • условие – некоторое условие согласно синтаксису языка C#. Инструкция оператор выполняется до тех пор, пока значение условие = true. Как только значение условие становится равным false, то циклический процесс прекращается и выполняются следующие после while операторы;
  • оператор – один или несколько операторов. Если в цикле while нужно выполнить несколько операторов одновременно, то эти операторы берутся в фигурные скобки { }.

Тело цикла (оператор) выполняется, пока значение условие есть истинным (true). Оператор цикла должен быть организован таким образом, чтобы в конечном счете значение условия стало равно false. Иначе, программа «зависнет», так как выйдет бесконечный цикл.

Читайте также:  Нерегулярный менструальный цикл задержка 2 месяца

Общая форма оператора цикла while, в котором выполняются несколько (два и более) операторов имеет следующий вид

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

операторN;
}

2. Понятие вложенных циклов while

Цикл while может быть вложенным в другие конструкции. Этими конструкциями могут быть:

  • циклы for, while, do…while;
  • оператор условного перехода if;
  • оператор выбора switch.

Количество уровней вложения, в которых может использоваться цикл while, есть неограниченным.

3. Схема оператора while

На рисунке 1 изображена схема оператора while. Как видно из схемы, сначала происходит проверка условия. Если значение условия равно True, то выполняется тело цикла. Выход из циклического процесса происходит в случае, если значение условия становится равно False.

C#. Схема оператора while

Рисунок 1. Схема оператора while

4. Примеры решения задач с оператором цикла while
4.1. Вывод результатов вычисления в цикле

Условие задачи. Получить таблицу температур по Цельсию tc от -50 до +50 градусов а также их эквивалентов по шкале Фаренгейта tf, используя соотношение

Формула преобразование градусы Фаренгейт Цельсий

Решение. Текст программы решения данной задачи для приложения типа Console Application, с использованием цикла while, следующий

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// шкала температур Цельсий => Фаренгейт
int tc; // текущее значение температуры по Цельсию
double tf; // значение температуры по Фаренгейту
tc = -50;
Console.WriteLine(“Шкала температур: Цельсий – Фаренгейт”);
while (tc <= 50)
{
tf = 9.0 / 5.0 * tc + 32;
tc++;
Console.WriteLine(“{0} C => {1} F”, tc, tf);
}
}
}
}

4.2. Рекурентные алгоритмы. Вычисление n-го члена последовательности

Условие задачи. Определить n-й член числовой последовательности (n>2):

xn=xn-1 + xn-2; x0 = x1 = 1

Решение. Текст программы решения данной задачи следующий:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// вычисление n-го члена последовательности
int n; // n>2
int x0, x1, x2;
int i;
// ввести значение n
Console.Write(“n = “);
n = Convert.ToInt32(Console.ReadLine());
// начальные присваивания
x0 = x1 = 1;
x2 = x0 + x1;
i = 1;
while (i <= n – 3) // вычисление
{
x0 = x1;
x1 = x2;
x2 = x0 + x1;
i++;
}
Console.WriteLine(“{0} “, x2);
}
}
}

В результате выполнения вышеприведенного кода, будет получен следующий результат

n = 7
13

4.3. Вычислить значения числа π с заданной точностью

Условие задачи. Вычислить значения числа π, используя формулу:

Определить, какое количество слагаемых нужно для определения числа π с точностью 7 знаков после запятой.

Формула число Пи

Решение. Для решения подобных задач цикл while подходит как нельзя лучше. Программный код решения задачи для приложения типа Console Application приведен ниже

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// вычислить значение числа Пи
double pi; // результат
int denom; // знаменатель
int ; // переменная, изменяющая знак числа + на -, и наоборот
double t; // дополнительная переменная – текущая точность
const double eps = 0.0000001; // точность 7 знаков после запятой
int k; // количество слагаемых для получения заданной точности
// начальные приготовления
k = 0;
pi = 0;
denom = 1;
= 1;
t = 1.0 / denom * ;
// цикл while – вычисление
while (t > eps)
{
pi = pi + 4 * t * ;
= -; // изменить знак
denom += 2; // изменить знаменатель
t = 1.0 / denom;
k++; // увеличить на 1 количество слагаемых
}
// вывод результата
Console.WriteLine(“Pi = {0}”, pi);
Console.WriteLine(“k = {0}”, k);
}
}
}

В результате выполнения вышеприведенного кода был получен следующий результат

Pi = 3.14159245358978
k = 5000000

5. Примеры решения задач, в которых оператор while есть вложенным
5.1. Цикл while есть вложенным в оператор выбора switch

В примере цикл while есть вложенным в оператор выбора switch. В зависимости от значения переменной a, выбирается соответствующий вариант нахождения суммы:

  • если a=1, то вычисляется s = 5+10+…+100;
  • если a=2, то вычисляется s = 5+10+…+20;
  • если a=3, то вычисляется s = 5+10;
  • иначе вычисляется s=100.

Программный код приложения типа Console Application, решающий данную задачу следующий:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
int a;
int s = 0;
int i;
a = 7;
// выбор алгоритма решения задачи в зависимости от значения a
switch (a)
{
case 1:
i = 0;
while (i < 100)
{
i = i + 5;
s = s + i;
}
break;
case 2:
i = 0;
while (i < 20)
{
i = i + 5;
s = s + i;
}
break;
case 3:
i = 0;
while (i < 10)
{
i = i + 5;
s = s + i;
}
break;
default:
s = 100;
break;
}
Console.WriteLine(“s = {0}”, s);
}
}
}

В результате выполнения вышеприведенного кода, на экран будет выведен результат

s = 100

5.2. Цикл while есть вложенным в операторе цикла for

Условие задачи. Найти количество делителей любого из целых чисел от 120 до 140.

Решение. Ниже приведен программный код, решающий данную задачу для приложения типа Console Application:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
ic void Main(string[] args)
{
// число делителей любого из целых чисел от 120 до 140
int i;
int up;
int t;
int k;
for (i = 120; i <= 140; i++)
{
// определить максимально-допустимое значение делителя
up = i / 2;
k = 0; // число делителей
t = 1;
while (t <= up) // вложенный цикл while
{
if (i % t == 0) // определение: делитель или не делитель
k++;
t++;
}
// Вывести на экран делитель
Console.WriteLine(“{0}: k = {1}”, i, k);
}
}
}
}

В результате выполнения вышеприведенного кода, будет выведен следующий результат

120: k = 15
121: k = 2
122: k = 3
123: k = 3
124: k = 5
125: k = 3
126: k = 11
127: k = 1
128: k = 7
129: k = 3
130: k = 7
131: k = 1
132: k = 11
133: k = 3
134: k = 3
135: k = 7
136: k = 7
137: k = 1
138: k = 7
139: k = 1
140: k = 11

Связанные темы

  • Оператор условного перехода if. Полная и сокращенная формы. Конструкция if-else-if
  • Оператор выбора switch

Источник