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

Содержание:

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

Здравствуйте! Меня зовут Александр Георгиевич. На протяжении последних 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 баллов, но вы смогли меня натаскать на предельно высокий балл. В обязательном порядке я продолжу с вами обучение в процессе подготовки к...

Уфимцев
Сергей

 
Хочется подчеркнуть высокую дисциплину на протяжении всех уроков, понятность объяснения и помощь даже во внеурочное время. Спасибо большое! Буду рекомендовать вас своим знакомым и друзьям))


Маслова

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

Сычев
Владимир

 
Понравилось заниматься, т к я научился более серьезно понимать программные конструкции, понял наконец-то что такое "указатель" и уже не так сильно боюсь программирования. Главное, больше практиковаться и решать простые...

Миронов
Сергей

 
Очень рад, что поступил в заветный ВУЗ, так как считаю, что именно в этом ВУЗе можно научиться отлично программировать, а репетитор помог мне очень сильно. Было интересно заниматься и сложно. Особенно я целыми часами...

Евдокимов
Максим

 
Не думал, что смогу получить 91 балл на ЕГЭ, но у меня получилось, благодаря методикам моего репетитора. Очень понятно объясняет, особенно нюансы, в которых я всегда путался и ленился разбираться.

Корелов
Дмитрий

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

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

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

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

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

Белов
Антон

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

Якименко
Александр

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