Эксперт по сдаче вступительных испытаний в ВУЗах
Введение.
Данная лабораторная работа посвящена разработке программ на языке программирования 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 и его уменьшенных на единицу значений. Для этого:
- Вводим n – количество циклов ввода a. Для избегания ввода нулевого или отрицательного значения n запускаем цикл repeat с условием ввода n>0.
- Переменной S где будем хранить сумму присваиваем 0;
- Запускаем цикл с параметром I от 1 до n;
- вводим a;
- временной переменной si присваиваем значение a;
- запускаем цикл с параметром j от 1 до i-1;
- временную переменную умножаем на уменьшенное на j значение a; переход на 7;
- переменную суммы s увеличиваем на si; переход на 6;
- вывод 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.
В данной строке найти самую длинную подстроку, состоящую из одинаковых символов.
Алгоритм решения задачи.
В данной задаче необходимо выделять в введенной строке последовательности идущих друг за другом одинаковых символов, считать количество символов в каждой последовательности и найти последовательность с самой максимальной длиной.
Для этого:
- вводим строку символов s, для контроля ввода строки с 0 длиной делаем цикл типа repeat;
- вводим дополнительные переменные для: подсчета символов в подстроке maxi, для вывода найденной подстроки si, переменная для определения максимальной длины подстроки max, логическую переменную f для определения начала подстроки;
- запускаем цикл с параметром I от 1 до величины длины введенной строки-1 для перебора символов в строке;
4.если найдено начало последовательности, то переменной f присваиваем значение истина, прибавляем символ к переменной si, переменную подсчета символов в подстроке maxi увеличиваем на 1;
- если последовательность продолжается, то прибавляем символ к переменной si, переменную подсчета символов в подстроке maxi увеличиваем на 1;
- если последовательность закончилась или достигнут конец строки, то проверяем больше ли длина подстроки maxi чем max и присваиваем если больше, выводим на экран подстроку si и ее длину maxi, сбрасываем значения переменных f=false, si=’’, maxi=0;
- если цикл по 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 являются очень полезными.
Ссылка на первоисточник:
http://voenmeh.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