Главная » Все файлы » Просмотр файлов из архивов » Документы » лекция по программированию 6

лекция по программированию 6 (Лекции по ЭВМ)

2019-04-28СтудИзба

Описание файла

Файл "лекция по программированию 6" внутри архива находится в следующих папках: Лекции по ЭВМ, 3. Документ из архива "Лекции по ЭВМ", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "лекция по программированию 6"

Текст из документа "лекция по программированию 6"

Лекция по программированию № 6

Кодирование алгоритмических конструкций на языке Pascal

Простейшая условная конструкция

Псевдокод

если <условие> то

<действия>

все

Pascal

If <условие> then

<оператор>

  • Оператор может быть простым, либо составным.

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

  • Логические связки: не – not, или – or, и – and.Выполняются в указанном порядке.

<Оператор> выполняется только при истинном условии.

Расширенная условная конструкция

Псевдокод

если <условие> то

<действия 1>

иначе

<действия 2>

все

Pascal

If <условие> then

<оператор 1>

else

<оператор 2>

При истинном условии выполняется только <оператор 1 >, а при ложном - только <оператор 2>.

Например, рассмотрим программу решения линейного уравнения



Program solution;

Var a, b, c, d:real;

Begin

Write(‘Введите коэффициенты a, b,c:’);

Read(a,b,c);

If a=0 then

Writeln(‘ Линейное уравнение’)

Else

Begin

D:=sqr(b)-4*a*c;

If d<0 then

Writeln(‘нет действительных корней’)

Else

If d=0 then

Begin

X1:=-b/(2*a);

Writeln(‘один корень x=’,x1:10:5);

End

Else

Begin

X1:=(-b+sqrt(d))/(2*a);

X2:=(-b-sqrt(d))/(2*a);

Writeln(‘два корня x=’,x1:10:5, ‘ x2=’,x2:10:5);

End;

End;

End.

Как видно из примера, точка с запятой не ставится перед else, т. к. условный оператор при наличии ветви иначе заканчивается там, где кончается <оператор 2>.

Конструкция выбора

Псевдокод

выбор (n)

n=1:< действия 1>

n=2:< действия 2>

n=k:< действия k>

[иначе < действия k+1> ]

квыбор

Pascal

Case(n) of

1: <оператор 1>

2: <оператор 2>

k: <оператор k>

[else <оператор k+1>

end

, где n – значение переменной или выражение порядкового типа.

Оператор выбора выполняется следующим образом.

  1. Вычисляется значение n.

  2. Отыскивается константа, равная полученному значению и выполняется записанный за ней оператор. Оператор может быть как простым, так и составным.

  3. Если соответствующее значение не найдено, то при наличии ветви иначе будет выполнен <оператор k+1>. Если ветвь иначе отсутствует, то никаких действий не выполняется.

Операторы в конструкции выбора можно пометить несколькими метками одновременно, например

Var I: integer;

case I of

0, 1,2: y:=x;

3,4: y:=z;

end;

Порядок следования меток-констант может быть произвольным, но все они должны быть различны, Например, недопустима конструкция

Case I of

1: x:=1;

3,2,1: x:=2;

end;

, т.к. константа 1 повторяется 2 раза.

Циклы

Цикл от… до (со счетчиком)

Псевдокод

цикл от i:=<н.з.> до <к.з.> [ шаг <приращение>]

<действия>

кц

Pascal

for i:=<н.з.> to | downto<к.з.>do

<оператор>

, где

i – переменная (счетчик) цикла должна обязательно иметь порядковый тип,

<н.з.> - начальное значение счетчика,

<к.з.> - конечное значение счетчика,

<приращение> - шаг, с которым изменяется значение счетчика.

Если действий в цикле несколько, необходимо использовать составной оператор. В языке Pascal для этого цикла можно использовать значение приращения только равное 1 (ключевое слово to), либо –1 (ключевое слово downto). При использовании других шагов необходимо использовать другой цикл, либо выражать значение переменной цикла через другие переменные. Например, рассмотрим фрагмент алгоритма

S:=0

Цикл от I:=1 до 5 шаг 0.5

S:=s+I2

кц

Этот фрагмент можно закодировать одним из следующих способов:

Вариант 1

I:=1; s:=0;

For k:=1 to 9 do

Begin

S:=s+sqr(i);

I:=I+0.5

End;

Вариант 2

I:=1; s:=0;

While I<=9 do

Begin

S:=s+sqr(i);

I:=I+0.5

End;

При выходе из этого цикла значение переменной цикла считается неопределенным.

Переменная цикла, а также ее конечное и начальное значение не должны изменяться в теле цикла.

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

В качестве примера использования цикла со счетчиком и конструкции выбора рассмотрим вычисление заданного количества чисел Фибоначчи.

Числа Фибоначчи вычисляются по формуле

F (1)=F(2)=1

F(k)=F(k-1)+F(k-2), при k>2.

Вычислим несколько первых чисел Фибоначчи: 1, 1, 2, 3, 5, 8 и т.д.

Для хранения этой последовательности использовать массив не обязательно. Достаточно трех переменных. Обозначим f1, f2 – два предыдущих числа Фибоначчи, f3 – текущее число. Изобразим несколько начальных шагов цикла. Стрелками показано перемещение значений переменных для следующего шага.

F1

F2

F3

1

1

2

1

2

3

2

3

5

Progran Fibonachi;

Var f1, f2, f3, n, I: integer;

{ f1, f2 – два предыдущих числа Фибоначчи, f3 – текущее число ,

n – количество чисел, i – номер текущего числа.}

begin

writeln(‘Числа Фибоначчи’);

writeln(‘Введите количество чисел’);

read(n);

if n<=0 then

wruteln(‘ Неверные данные’)

else

begin

f1:=1; f2:=1;

case n of

1:writeln(‘1’);

2: writeln(‘1 2’);

else begin

writeln(f1:3, f2:3);

for I:=3 to n do

begin

f3:=f1+f2;

f1:=f2;

f2:=f3;{для следующего шага перемещаем

числа в соответствующие ячейки }

writeln(f3:6);

end;{для цикла for}

end;{для else}

end;{для case}

end.{конец программы}

Цикл-пока (с предусловием)

Псевдокод

цикл-пока <условие>

<действия>

кц

Pascal

While <условие> do

<оператор>

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

Цикл_до (с постусловием)

Псевдокод

цикл

<действия>

до <условие>

кц

Pascal

Repeat

<оператор>

until условие

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

Примеры использования двух последних циклов рассмотрим на следующей лекции.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее