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

Содержание:

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

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

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

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

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

Соколов
Дмитрий

 
Я научился тому, о чем мечтал с 15 лет. Александр Георгиевич, оказывается, очень хорошо знает веб-программирование, хотя его основной профиль (по его словам) - подготовка к ОГЭ/ЕГЭ по информатике и ИКТ. Скажу честно,...

Лебедев
Валерий

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

Фомин
Глеб

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

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

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

Коваленко
Всеволод

 
Хочу отметить дисциплину на уроках, я чувствовал себя как на официальной паре, никаких шуток и панибратств. Очень понравилось серьезное отношение к дисциплине, т к я сам челвоек дисциплинированный. Спасибо вам!

Курцева
Мария

 
Я очень довольна результатами)) Меня бы даже устроило бы и 70 баллов. Положительные стороны репетитора: интересно доносит материал, является экспертом в своей области, уроки ориентированы на практику. Из отрицательных...

Воробьев
Станислав

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

Павленко
Илья

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

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

 
Выражаю благодарность за добросовестную подготовку к успешной сдаче ЕГЭ по информатике и ИКТ. Особенно хочется отметить подход репетитора к работе, видно, что ему тоже интересно совместно со мной решать эти задачи, он...

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

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


Маслова

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

Трунин
Сергей

 
На редкость сильный репетитор, абсолютно компетентен в преподаваемом предмете, знает язык программирования Turbo Pascal просто "насквозь". Было интересно заниматься и очень познавательно, так как в школе мы ничего этого...

Иванов
Денис

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