Определите какое значение будет иметь переменная i после выполнения следующего фрагмента программы
Перейти к содержимому

Определите какое значение будет иметь переменная i после выполнения следующего фрагмента программы

Определите какое значение будет иметь переменная i после выполнения следующего фрагмента программы

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

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

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

Например, в листинге 76 цикл с оператором while обрабатывает данные до тех пор, пока не будет введено слово «Студент»:

public partial class Forml : Form <

private void Forml_Load(object sender, EventArgs e)

while (name != «Студент»)

name = Microsoft.VisualBasic.Interaction.InputBox («Введите Ваше имя или слово Студент для выхода», «Окно ввода данных», -1, -1);

if (name != «Студент»)

MessageBox.Show(«Ответ = » + name, «Заголовок окна», MessageBoxButtons.OK, MessageBoxIcon.Information);

Общий вид в алгоритме оператора while (с предпроверкой условия) представлен на рис. 96.

Синтаксис оператора while следующий:

while (логическое выражение)

Здесь приведены обозначения:

Pi, Р2 , . Рп — операторы, while (пока, до тех пор) — служебное слово языка.

Если логическое выражение после служебного слова while имеет значение true (истина), то выполняются операторы Рь Р2, . Рп , после чего проверка логического выражения повторяется. Если логическое выражение имеет значение false (ложь), то происходит выход из цикла. Если условие в заголовке цикла не является истинным с самого начала, цикл while не выполняется. Следует отметить, что в цикле с оператором while в случае выполнения нескольких операторов операторные скобки <> обязательны.

Общий вид в алгоритме оператора while

Рис. 96. Общий вид в алгоритме оператора while

Вернемся к задаче, которая была разобрана ранее: найдите сумму целых чисел от 1 до 50.

В циклах с оператором for и с оператором do. while ответом в задаче было число 1275. Что изменится в программе, если применить оператор while? Прежде всего, надо позаботиться о том, чтобы какая-нибудь переменная менялась в цикле от 1 до 50. Ведь такой величины, как параметр цикла, нет в конструкции while. В нашем примере это будет переменная к. Задав в качестве условия выхода из цикла к != 50 и применяя в цикле оператор sum = sum + к, мы просуммируем все 50 слагаемых и получим в ответе 1275.

Разработка алгоритма решения задачи представлена на рис. 97.

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

public partial class Forml : Form <

private void Forml_Load(object sender, EventArgs e) <

int k, sum; к = 0; sum = 0; while (k != 50)

к = к + 1; sum = sum + k;

MessageBox.Show(«Сумма чисел от 1 до 50 = » + sum.ToString(«n»), «Заголовок окна», MessageBoxButtons.OK, MessageBoxIcon.Information);

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

Рис. 97. Алгоритм решения задачи

Скриншот, приведенный на рис. 98, подтверждает правильность кода программы.

Сумма чисел от 1 до 50 равна 1275

Рис. 98. Сумма чисел от 1 до 50 равна 1275

Задача. Создадим проект, в котором будет осуществлено решение следующей задачи: сумма денег (ячейка Sum) помещена в банк под процент (ячейка Proc), но мы хотим знать, через сколько лет эта сумма удвоится?

Разработка алгоритма решения задачи представлена на рис. 99.

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

Листинг 78 namespace WindowsApplicationl

public partial class Forml : Form

private void Forml_Load(object sender, EventArgs e)

int proc, god; double sum, udvsum; string sum_, proc_;

sum_ = Microsoft.VisualBasic.Interaction.InputBox(«Введите исходную сумму в рублях», «Окно ввода данных», -1, -1);

sum = Convert.ToIntl6(sum_); proc_ =

Microsoft.VisualBasic.Interaction.InputBox(«Введите процент», «Окно ввода данных», -1, -1);

proc = Convert.ToIntl6(proc_); god = 0 ;

udvsum = 2 * sum ; while (sum = 10)

a = a — 1 ; d = d + 1 ;

Ответ. Если вы хорошо знаете теоретический материал, то данное упражнение не покажется вам тяжелым. Проверив логическое выражение, убеждаемся в том, что оно истинно. Далее вам придется уменьшать значение ячейки а на 1, значение ячейки d увеличивать на 1, каждый раз проверяя разность значений ячеек. Выход из цикла происходит тогда, когда в ячейке а будет находиться число 17, а в ячейке d число 8. Выполнив оператор s = а + d, получим, что значение ячейки s равно 25.

Вопрос 8. Каким будет значение переменной а после выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

int a = 1; int z = 1; while (z 0) //Проверка: положительно ли

kolpol = kolpol + 1; //Увеличение счетчика на единицу в случае истинности условия

if (chislo 0) //Проверка: положительно ли

pol = pol + 1; else

MessageBox.Show(«Положительных чисел больше»,

«Заголовок окна», MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show(«Отрицательных чисел больше»,

«Заголовок окна», MessageBoxButtons.OK, MessageBoxIcon.Information);

Задача 3. Вводится последовательность вещественных чисел, не равных нулю. Известно, что последний элемент последовательности равен 5. В программе должна вычисляться сумма всех положительных и сумма всех отрицательных чисел. Разработка алгоритма решения задачи представлена на рис. 102.

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

public partial class Forml : Form <

private void Forml_Load(object sender, EventArgs e)

double pol = 0; double otr — 0;

double chislo=0; string chislo_; while (chislo !=5)

//Ввод очередного числа

Microsoft.VisualBasic.Interaction.InputBox(«Введите число», «Окно ввода

if (chislo > 0) //Проверка: положительно ли введенное

pol = pol + chislo; //Увеличение значения ячейки на величину числа в случае истинности проверяемого условия

otr = otr + chislo; //Увеличение значения ячейки на величину числа в случае, если проверяемое условие ложно

pol = pol — 5; //Из конечной суммы положительных чисел отнимаем 5 для того, чтобы не исказился результат

MessageBox.Show(«Сумма положительных чисел = pol.ToString(«n»), «Заголовок окна», MessageBoxButtons.OK,

MessageBox.Show(«Сумма отрицательных чисел = otr.ToString(«n»), «Заголовок окна», MessageBoxButtons.OK,

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

Рис. 102. Алгоритм решения задачи

Задача 4. Вводится последовательность целых чисел, не равных нулю. Известно, что последний элемент последовательности равен 0. Найдите среднее арифметическое этих чисел.

Определите какое значение будет иметь переменная i после выполнения следующего фрагмента программы

Здравствуйте дорогие программисты.У меня неприятная ситуация.Моя девушка завалила вчера экзамен и теперь на перездачу.Я не могу ей ничем помочь так как занимаюсь совсем другим.Вот пишу вам с надеждой о помощи.В тесте следующие вопросы:
1 сколько раз выполнится тело цикла ,имеющего следующий заголовок for i:1 to 5?
2 сколько раз выполнится тело цикла ,имеющего следующий заголовок for i:1 to-5?
3 какое значение будет получено при вычислении выражения (2.5>3.5) or (2<7.5)?
a) false
b) true
c) ошибка:несоответствие типа операнда операции
d) ошибка:деление на 0
f) оставить пустым
4 что из перечисленного ниже не входит в состав основных участников процесса преобразования информации?
a) комплекс технических средств
b) software
с) документы ,регламентирующие процесс преобразования
d) контролирующие органы власти
f) пользователи
j) оставить пустым
5 Какое значение будет иметь переменная i после выполнения фрагмента программы (i:integer,r:real):
readln(i);
writeln(r,i);
readln(i,r);
если пользователь вводил с клавиатуры
4
5
6
выберите ответ

a)5
b)4
c)6
d)произойдет ошибка во время выполнения строки:readln(i,i)
f) произойдет ошибка во время выполнения строки:writeln(r,i)
j) оставить пустым

6 Какое значение окажется в переменной F (var F real, i:integer)после выполнения фрагмента программы :
readln(f);
i:=10
writeln(‘f=’,f+i);
если пользователь программы вводил с клавиатуры 20

a)20
b)10
c)30
d)0
f)фрагмент программы содержит синтаксическую ошибку
j)ошибка возникнет при вводе пользователем значений с клавиатуры
с)оставить пустым

7 С помощью какого оператора можно вывести на экран сообщение <<S=20>>,если переменная S (S:integer) содержит значение 20?
a)writeln(‘S=’,S);
b)readln(‘S=’,S);
c)S=20
d)writeln(‘S=’,20);
f)writeln(‘S=20’);
j)readln(‘S=20’);
h)writeln(‘S=,S’);

8 Сколько раз выполнится тело цикла while?
i:=1.2;
while i<20 do
i:=i+2;

a)10
b)8
c)0
d)9
f)20
j)фрагмент содержит ошибку
с)произойдет зацикливание
x)оставить пустым

9 Укажите стандартные идентификаторы вещественных типов
a)integer
b)real
c)char
d)string
f)boolean
j)double
s)word
k)byte
n)DataTime

10 Что из нижеперечисленного является лексемой?
a)вызов функции
b)описание типа
с)идентификатор переменной
d)описание функции
f)вызов процедуры
j)идентификатор процедуры
s)символ Пробел
e)константа 3

11 Какое значение будет иметь переменная r после выполнения фрагмента программы (i:integer;r:real):
readln(r);
writeln(r,i);
readln(i,i);
если пользователь вводил с клавиатуры
4.66
5
6

a)4.66
b)5
c)6
d)произойдет ошибка во время выполнения строки:readln(i,i)
f)произойдет ошибка во время выполнения строки:readln(r)
s)оставить пустым

12 Какие типы программных продуктов относятся к инструментальному программному обеспечению ?
a)операционные системы
b)интегрированные среды разработчика
с)СУБД
d)САПР
f)Корпоративные информационные системы
g)Текстовые редакторы
n)Электронные таблицы

Пожалуйста помогите нам. Нужны только ответы. до экзамена осталось 2 часа и простите что клянчим

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *