Помощь студентам дистанционного обучения: тесты, экзамены, сессия
Помощь с обучением
Оставляй заявку - сессия под ключ, тесты, практика, ВКР
Скоро вступительные экзамены?

Лабораторная работа на тему условные операторы и циклы



Помощь с дистанционным обучением
Получи бесплатный расчет за 15 минут
 

Введите контактный e-mail:

 

Введите номер телефона

 

Что требуется сделать?

 

Каким способом с Вами связаться?:

E-mail
Телефон
Напишем вам на вашу почту
 
Перезвоним вам для уточнения деталей
 
Перезвоним вам для уточнения деталей
 

или напишите нам прямо сейчас

Написать в WhatsApp
 

Введение.

Данная лабораторная работа посвящена разработке программ на языке программирования Pascal с использованием простых управляющих структур – условного оператора и цикла. При разработке программы требуется определить входные и выходные данные, а так же разработать алгоритм решения задачи не прибегая к использованию массивов, меток и операторов безусловного перехода.

Условный оператор на языке программирования Pascal имеет вид:

If  (условие) then (оператор или блок операторов исполняемых если условие верно) else (оператор или блок операторов исполняемых если условие не верно)

Зачастую условный оператор используется в не полной форме без применения else.

Операторов цикла в языке Pascal несколько:

Цикл с параметром или счетчиком.

For счетчик:=начальное_значение to конечное_значение do (оператор или блок операторов исполняемых пока значение счетчика не превышает конечное значение) в ходе итераций значение счетчика возрастает на 1. Ключевое слово downto уменьшает на 1 значение счетчика.

Цикл с предусловием.

While (условие) do (оператор или блок операторов исполняемых пока условие верно)

Цикл с постусловием.

Repeat (оператор или блок операторов исполняемых пока условие не верно) until (условие).

Задание 1.

Дано: натуральное n, действительные a 1, a 2,…,a n. Вычислить: a1 + a2 * (a2 –1) + a3 * (a3 –1) * (a3 – 2) + a4 * (a4 – 1) * (a4 – 2) * (a4 – 3) + … + an * (an – 1) * (an – 2) *…* (an – n +1).

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

Организуя цикл с n количеством повторов, находим сумму произведений вводимого в цикле числа a и его уменьшенных на единицу значений. Для этого:

  1. Вводим n – количество циклов ввода a. Для избегания ввода нулевого или отрицательного значения n запускаем цикл repeat с условием ввода n>0.
  2. Переменной S где будем хранить сумму присваиваем 0;
  3. Запускаем цикл с параметром I от 1 до n;
  4. вводим a;
  5. временной переменной si присваиваем значение a;
  6. запускаем цикл с параметром j от 1 до i-1;
  7. временную переменную умножаем на уменьшенное на j значение a; переход на 7;
  8. переменную суммы s увеличиваем на si; переход на 6;
  9. вывод s.

Переменные используемые в программе:

Тип byte выбран поскольку отвечает требованиям задачи – целое положительное число до 255, тип real выбран для вещественного числа последовательности a и их суммы по условию задачи.

n: тип byte — количество повторов ввода a;

i, j: тип byte — счетчики циклов;

a: тип real – вводимый элемент последовательности;

s, si: тип real – сумма и промежуточное значение суммы последовательности.

Блок-схема программы.

Рисунок 1 — Блок-схема решения задачи 1

Текст программы.

program lab1_1;

var

  n: byte; // количество элементов последовательности

i, j: byte; // счетчики циклов

a: real; // элемент последовательности

s, si: real; // сумма последовательности

begin

  write(‘Введите количество элементов последовательности ( n>0 ) = ‘);

repeat

  readln(n); // вводим n

until n>0; // пока оно меньше или равно 0

s := 0; // начальное значение суммы

for i := 1 to n do // цикл ввода последовательности

begin

    write(‘Введите a(‘, i, ‘) = ‘);

readln(a); // ввод очередного элемента последовательности

si := a; // промежуточному элементу произведения присваиваем значение а

for j :=  1 to i — 1 do si := si * (a — j); // вычисляем произведение уменьшающихся на 1 значений а

s := s + si; // сумма последовательности

end;

writeln(‘s = ‘, s); // вывод вычисленного значения

end.

Результат работы  программы.

N=5

I=1 a=4 si=4 S=0+4=4

I=2 a=3  si=3*2=6 s=6+6=10

I=3 a=2 si=2*1*0=0 s=10+0=10

I=4 a=1 si=1*0*(-1)=0 s=10+0=10

I=5 a=6 si=6*5*4*3*2=720 s=720+10=730

Рисунок 2 — результат работы программы

Задание 2.

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

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

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

Для этого:

  1. вводим строку символов s, для контроля ввода строки с 0 длиной делаем цикл типа repeat;
  2. вводим дополнительные переменные для: подсчета символов в подстроке maxi, для вывода найденной подстроки si, переменная для определения максимальной длины подстроки max, логическую переменную f для определения начала подстроки;
  3. запускаем цикл с параметром I от 1 до величины длины введенной строки-1 для перебора символов в строке;

4.если найдено начало последовательности, то переменной f присваиваем значение истина, прибавляем символ к переменной si, переменную подсчета символов в подстроке maxi увеличиваем на 1;

  1. если последовательность продолжается, то прибавляем символ к переменной si, переменную подсчета символов в подстроке maxi увеличиваем на 1;
  2. если последовательность закончилась или достигнут конец строки, то проверяем больше ли длина подстроки maxi чем max и присваиваем если больше, выводим на экран подстроку si и ее длину maxi, сбрасываем значения переменных f=false, si=’’, maxi=0;
  3. если цикл по I закончился, то выводим значение max.

Переменные используемые в программе:

Введенная строка  — s  строковый тип,

Подстрока si – строковый тип,

Индекс символа в строке I – тип короткое положительное целое byte,

Флажок начала подстроки – f логического типа;

Длина подстроки si – тип короткое положительное целое byte,

Максимальная длина подстроки max — тип короткое положительное целое byte.

Блок-схема.

Рисунок 3 — блок-схема 2 задания

Текст программы

program lab1_2;

var s,si: string;

max,maxi,i:byte;

f: boolean;

begin

  write(‘введите строку > ‘);

repeat

  readln(s);

// проверяем чтобы строка была не пустой

until(length(s)<>0);

// начальные значения

maxi:=0;

si:=»;

max:=0;

f:=false;

// перебор всех символов в строке

for i:=1 to length(s)-1 do

  begin

    //если найдено начало новой последовательности

if (f=false) and (s[i]=s[i+1]) then

      begin

      f:=true;

si:=si+s[i];

maxi:=maxi+1;

end;

//последовательность продолжается

if (f=true) and (s[i]=s[i+1])  then

      begin

      maxi:=maxi+1;

si:=si+s[i];

end;

// если обнаружен конец последовательности или конец строки

if ((f=true) and (s[i]<>s[i+1])) or (i+1=length(s)) then

    begin

      // определяем максимальную длину последовательности

if maxi>max then max:=maxi;

writeln(‘найдена последовательность ‘,si,’ длиной ‘,maxi,’ симв.’);

// сброс значений переменных

f:=false;

si:=»;

maxi:=0;

end;

end;

// вывод результата

writeln(‘максимальная последовательность ‘,max );

end.

Результат работы программы.

Рисунок 4 — результат работы программы 2 задания

Рисунок 5 — результат работы программы 2 задания

Рисунок 6 — результат работы программы 2 задания

Заключение.

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

Для каждого задания был проведен анализ задачи, составление словесного алгоритма решения и алгоритма с помощью блок-схем. После чего алгоритмы были записаны на языке программирования Pascal и отлажены.

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

Помощь с дистанционным обучением
Получи бесплатный расчет за 15 минут
 

Введите контактный e-mail:

 

Введите номер телефона

 

Что требуется сделать?

 

Каким способом с Вами связаться?:

E-mail
Телефон
Напишем вам на вашу почту
 
Перезвоним вам для уточнения деталей
 
Перезвоним вам для уточнения деталей
 

или напишите нам прямо сейчас

Написать в WhatsApp
 

Оставить комментарий

 

Ваше имя:

Ваш E-mail:

Ваш комментарий

Inna Petrova 18 минут назад

Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики

Иван, помощь с обучением 25 минут назад

Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Коля 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 часов назад

Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!

Иван, помощь с обучением 6 часов назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Василий 12 часов назад

Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.

Иван, помощь с обучением 12 часов назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Анна Михайловна 1 день назад

Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?

Иван, помощь с обучением 1 день назад

Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Сергей 1 день назад

Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.

Иван, помощь с обучением 1 день назад

Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инна 1 день назад

Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?

Иван, помощь с обучением 1 день назад

Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Студент 2 дня назад

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

Иван, помощь с обучением 2 дня назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Ольга 2 дня назад

Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2

Иван, помощь с обучением 2 дня назад

Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вика 3 дня назад

сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.

Иван, помощь с обучением 3 дня назад

Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Игорь Валерьевич 3 дня назад

здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО

Иван, помощь с обучением 3 дня назад

Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вадим 4 дня назад

Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ

Иван, помощь с обучением 4 дня назад

Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Кирилл 4 дня назад

Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?

Иван, помощь с обучением 4 дня назад

Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Oleg 4 дня назад

Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?

Иван, помощь с обучением 4 дня назад

Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Валерия 5 дней назад

ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?

Иван, помощь с обучением 5 дней назад

Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 дней назад

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

Иван, помощь с обучением 5 дней назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Иван неделю назад

Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки

Иван, помощь с обучением неделю назад

Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Дарья неделю назад

Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.

Иван, помощь с обучением неделю назад

Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru