Другие статьи из рубрики «Информатика»

Содержание:

Репетитор по информатике и программированию к вашим услугам!

Здравствуйте! Меня зовут Александр Георгиевич. На протяжении последних 10 лет я профессионально занимаюсь репетиторством в области информатики, программирования, баз данных и математики.

Если у вас возникли сложности с пониманием того, как устроен цикл while в Паскаль, или вы вообще не понимаете смысл данной конструкции, то срочно звоните мне на мобильный телефон и записывайтесь на первый пробный урок. Данная тема является чрезвычайно важной как для школьников, выбравших сдачу ОГЭ или ЕГЭ по информатике, так и для студентов абсолютно любого технического вуза.

Я прекрасно понимаю, что вы чрезвычайно занятой человек, но несмотря на это, я настоятельно вам рекомендую потратить 2-3 минуты и познакомиться с отзывами клиентов, прошедших подготовку под моим чутким контролем. Все они добились поставленных целей за разумное время.

Практически любая программа на языке программирования Pascal содержит циклическую конструкцию и зачастую тип этого цикла – цикл while-do. Записывайтесь на мои индивидуальные уроки уже сегодня, так как количество ученических ограниченно, и набор учеников скоро закончится.

Анатомический взгляд на цикл while в Паскаль

Если для выполнения задачи необходимо повторение определенного блока кода несколько раз подряд, применяют циклы. В языке Паскаль эту операцию помогают выполнить специальные операторы цикла.

Цикл while применяют, если число повторений неизвестно заранее. Цикл while в Паскаль является оператором цикла с предварительным условием, то есть заголовок цикла содержит в себе логическое условие, при истинности которого выполняются команды тела цикла. Логическое выражение заголовка цикла может быть и составным.

Схематично цикл while-do можно показать следующим образом:

while (<логическое выражение>) do
begin
            <операторы тела цикла>;
end;

<логическое выражение> является булевским выражением, то есть результатом его выполнения будут истинные или ложные значения (TRUE или FALSE);

<операторы тела цикла> - команды, которые выполняются в теле цикла при условии того, что <логическое выражение> вернуло истинное значение.

Правила выполнения цикла while в Паскаль

  • Логическое выражение в заголовке цикла вычисляется до начала выполнения операторов тела цикла.

  • Логическое условие заголовка цикла проверяется на истинность (TRUE или FALSE).

  • Если логическое условие приобретает значение TRUE, то начинается выполнение инструкции или последовательности нескольких инструкций в теле цикла.

  • Если логическое условие в заголовке цикла получает ложное значение (FALSE), то выполнение цикла считается законченным.

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

  • Хотя бы одна из группы команд, входящих в тело цикла while-do, должна оказывать влияние на условие выполнения цикла, иначе такой цикл будет выполняться бесконечное число раз.

Рассмотрим примеры того, как используется цикл while в Паскаль

Условие задачи: программа автоматически генерирует случайное натуральное число в диапазоне от 1 до 25. Когда выпадет число 12, программа должна завершиться. В ответе указать, сколько раз было сгенерировано случайное число, прежде чем выпало значение равное 12.

Программа на языке Pascal:

{заголовок программы}
program gen12;
{раздел объявления переменных}
var
{отвечает за текущее сгенерированное число}
    x : byte;
{отвечает за количество чисел, которые были сгенерированы перед тем, как выпало значение равное 12}    
    k : byte;        
{начало главного блока программы}    
begin
{получаем первое случайное число в диапазоне от 1 до 25}
    x := random(25) + 1;
{поскольку первое число сгенерированно, то количество таких чисел становится 1}    
    k := 1;
{выводим на экран текущее число, чтобы пользователь видел информацию, с которой он работает}    
    write(x:4);
{начинается цикл с предусловием. Цикл завершится, когда значение переменной х станет равно 12}    
    while(x <> 12) do
{начало тела цикла while-do}    
    begin
{количество сгенерированных чисел увеличиваем на 1}    
        k := k + 1;
{генерируем следующее случайное число в диапазоне от 1 до 25}        
        x := random(25) + 1;
{выводим текущее число на экран пользователя}        
        write(x:4);
{конец тела цикла while-do}        
    end;
{переходим на следующую строку в консоли, чтобы выводы не сливались}    
    writeln;
{выпечатываем количество чисел, которые были сгенерированы перед тем, как выпало число равное 12}    
    write(k);
{конец программы Pascal}    
end.

Условие задачи: Дан одномерный массив, состоящий из 10 элементов, целочисленного типа данных. Значения элементов массива заполнены случайным образом в диапазоне от 1 до 25. Пользователь вводит произвольное число с клавиатуры. Необходимо подсчитать число элементов, значения которых меньше, чем введенное пользователем. Причем подсчет заканчивается, когда встретился элемент, имеющий значение равное или большее, чем указал пользователь.

Программа на языке Pascal:

{раздел объявления констант}
const
{отвечает за количество элементов одномерного массива}
    N = 10;                
{раздел объявления переменных}    
var
{одномерный массив, состоящий из 10 элементов}
    v : array[1..N] of integer;
{счетчик циклов, являющийся, как правило и индексом элементов массива}    
    i : integer;
{число, с которым будут проверяться элементы массива}    
    x : integer;
{количество элементов массива, значение которых меньше заданного числа}    
    k : integer;
{начало главного блока}    
begin
{запускаем цикл по всем элементам массива}
    for i := 1 to N do
    begin    {начало тела цикла for}
        v[i] := random(25) + 1;  {генерируем случайное число от 1 до 25}
        write(v[i]:4);    {печатаем текущий элемент на экран шириной в 4 позиции}
    end;    {конец тела цикла for}
    writeln;    {переход на новую строку, чтобы вывод не сливался}
    write('Введите значение для анализа: ');
    readln(x);    {считали с клавиатуры число для анализа}
    k := 0;    {пока цикл не начался, следовательно, ни один элемент еще не обработан}  
    i := 1;    {встаем на первый элемент одномерного массива}
{просматриваем массив поэлементно. Цикл выполняется пока мы не вышли за правую границу массива и пока текущий элемент меньше введенного пользователем}    
    while((i <= N) and (v[i] < x)) do
    begin    {начало тела цикла while}
        i := i + 1;    {переходим на следующий элемент}
        k := k + 1;    {количество проверенных элементов увеличиваем на 1}
    end;    {конец тела цикла while}
{выводим на экран пользователя подсчитанное число элементов}    
    write('Количество элементов: ', k);
end.    {конец программы}

Сейчас я предлагаю вашему вниманию мультимедийное решение, в котором продемонстрировано использование цикла с предусловием, то есть цикла while-do.

Остались вопросы, недопонимание? Звоните мне на сотовый телефон!

Если у вас остались какие-либо недопонимания относительно использования цикла while-do в языке программирования Pascal, то записывайтесь на мои частные уроки по информатике, программированию и математике. Номер телефона сможете увидеть в шапке сайта.

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

В отличие от большинства репетиторов я осуществляю свои занятия на различных территориях:

Отзывы
моих учеников

Дмитров
Анатолий

 
Результат превзошел все мои ожидания! Изначально я планировал набрать в районе 80 баллов, но вы смогли меня натаскать на предельно высокий балл. В обязательном порядке я продолжу с вами обучение в процессе подготовки к...

Ермаченков
Александр

 
Был очень сложный экзамен, я безумно счастлив, что получил "хорошо", так как на "отлично" сдало всего 4 человека со всего потока (причем они серьезно изучали программирование еще до поступления в ВУЗ). Я понял, что С++...

Станислав
Блок

 
Спасибо вам за подготовку. Было очень интересно и познавательно. Программированием заниматься в жизни не буду, т к чувствую, что нужно еще очень многое изучать. Спасибо вам еще раз.

Белов
Антон

 
Заниматься очень понравилось, преподаватель прекрасно знает преподаваемый материал. Многое узнал дополнительно, задавал много смежных вопросов и получал профессиональные ответы. Также понравилось, что в процессе урока...

Фролова
Екатерина

 
Я очень довольна, что познакомилась с таким прекрасным преподавателем как  Александр Георгиевич. Все кто хочет повысить свою успеваемость и знания в этой области, обязательно обратитесь...

Догаев
Самир

 
Когда я поступил в ВУЗ, то я совсем не умел программировать на С++ и нам сразу стали давать сложные лабораторные, которые мне физически были не под силу. Решил найти репетитора и обратился к Александру Георгиевичу (он...

Потапова
Ирина

 
Спасибо большое вам за помощь. Без вашей поддержки я бы не получила 5-ку на экзамене. Хочу особенно отметить, что на ваших уроках вы даете очень много полезной сопутствующей информации, в том числе и разного рода...

Орлов
Максим

 
Спасибо большое вам Александр Георгиевич. Было очень интересно и увлекательно решать с вами данные лабораторные. Они оказались не такими сложными, какими они казались изначально. Оказывается процесс программирования...

Камю
Константин

 
Я сдал курсовой проект на отлично благодаря помощи репетитора Александра. Он очень доступно дает незнакомый и сложный материал. Понравилось еще то, что он старается все свои объяснения подкреплять визуальными...

Богдан
Игнатьев

 
Теперь я чувствую себя уверенно при программировании графических примитивов. Я еще раз убедился, что хороший учитель очень важен для хорошего обучения. В следующем учебном году у нас будет дисциплина "Мультипликация и...

Волков
Антон

 
Было очень сложно и, оказалось, что я совсем не знал ни Excel, ни C#. Александр Георгиевич подтянул мои знания и вывел их на новый квалитативный уровень. Спасибо вам и успехов!

Белкин
Юрий

 
Круто, что я сдал на 5 свой экзамен, было оооооочень сложно, но у меня получилось. Кстати, Александр Георгиевич кроме языка СИ еще приводил сравнения с языком С++, очень круто на самом деле. Заниматься понравилось и...

Арапов
Александр

 
Спасибо вам Александр, я планирую в будущем стать профессиональным зарубежным программистом на C# и теперь у меня появилась серьезная база для этого.
Смотреть все отзывы
 
 
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?
Занятия по информатике