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

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

Автор статьи
Валерия
Валерия
Наши авторы
Эксперт по сдаче вступительных испытаний в ВУЗах
Введение. Данная лабораторная работа посвящена разработке программ на языке программирования 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 являются очень полезными.

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

Написать в WhatsApp Написать в Telegram

О сайте
Ссылка на первоисточник:
http://vicollege.ru
Поделитесь в соцсетях:

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

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