Лаб1_Паскаль. Программир_Ту. Задача 1 звучит следующим образом Пусть дано натуральное число n. Составить программу вычисления n
![]()
|
Содержание 1.Введение 2 2.Анализ задачи № 1 3 3.Решение задачи № 1 3 3.1. Описание используемых переменных, обоснование выбора типа данных 3 3.2. Описание алгоритма 3 4.Анализ задачи № 2 5 4.1.Описание используемых переменных, обоснование выбора типа данных 5 4.2.Описание алгоритма 5 ВведениеВ лабораторной работе № 1 создавались программы с использованием простых управляющих структур: условных операторов, циклов. В решаемых заданиях использовались простые типы данных, т.е. нет необходимости использовать массивы. В первой задаче использовались простой тип данных, а во второй – строковый. Выполнение работы происходило с использованием PascalABC. Анализ задачи № 1Задача № 1 звучит следующим образом: Пусть дано натуральное число n. Составить программу вычисления n3 как суммы нечетных чисел исходя из того, что: 13 = 1; 23 = 3 + 5; 33 = 7 + 9 + 11; 43 = 13 + 15 + 17 + 19; 53 = 21 + 23 + 25 + 27 + 29; … Решение задачи № 1Описание используемых переменных, обоснование выбора типа данныхИз условий следует, что требуется составить программу с возможностью возведения числа n в куб (для этих целей будет применяться оператор power, а значит будет использоваться переменные типа real). При этом после её выполнения должно выводиться тождество числа n в кубе равно сумме чисел, из которых оно состоит и в формульном выражении получаемый ответ имеет вид: n3 = (n2 – (n – 1))n + (n2 – (n – 1))n + … Рассматривая получаемую формулу, можно увидеть необходимость использования оператора циклов while. Описание алгоритмаБлок-схема представлена на рис 1. Изначально задаёмся количеством и типом используемых переменных (a, b, c, d :real); После задаём команду отображающую просьбу о вводе числа; Присваиваем переменным c, b, d первоначальные значения; Задаём оператор while, который необходим для проверки выполнения имеющегося условия d < c. На каждом этапе не забываем задавать оператор вывода, необходимый для формирования конечного ответа. После достижения невыполнения условия оператора while, программа выдает необходимый нам ответ. ![]() Рис. 1. Блок схема алгоритма получения тождества состоящего из куба задаваемого числа и его составных чисел согласно условиям. Анализ задачи № 2Условия задачи № 2 звучат следующим образом и содержат некоторые указания: Исключить из данной строки группы символов, расположенные между скобками ( , ). Сами скобки тоже должны быть исключены, а также предполагается, что внутри каждой пары скобок нет других скобок. Описание используемых переменных, обоснование выбора типа данныхИспользовались два типа переменных: string (для задания различных видов символов как буквенного вида, так и числового, а также различных знаков) и byte (так как использовалась функция pos). Описание алгоритмаДля достижения поставленной цели были использованы три переменные с двумя типами данных. Блок-схема представлена на рис. 2.1. Последние две служили обозначением начала и конца цикла repeat, в котором был задан оператор удаления delete символов с первой до последней позиции. ![]() Рис. 2.1. Блок схема алгоритма удаления символов, находящихся в скобках. Приложение 1. Листинг программы задачи № 1, ЛР № 1. var a,b,c,d:real; begin writeln('Введите число a, которое хотите возвести в куб'); readln(a); c:=power(a,2)-(a-1); b:=power(a,3); {использование power вместо sqr обусловлено возведением в куб} write(a,'^3='); d:=0; while ddo begin if d else write(c); d:=d+c; c:=c+2; end; end. Приложение 2. Тестирование программы № 1, ЛР №1. ![]() Рис. 1.2. Пример работы программы задачи № 1, ЛР № 1. Приложение 3. Листинг программы № 2, ЛР №1 var a:string; b1,b2:byte; begin writeln('Введите строку с группами символов, заключенных в круглые скобки'); readln(a); repeat b1:=pos('(',a); b2:=pos(')',a); delete(a,b1,b2+1); until(b1=0)or(b2=0); writeln(a) end. Приложение 4. Тестирование программы № 2, ЛР №1. ![]() Рис. 2.2. Пример работы программы задачи № 1, ЛР № 1. |