Файл: Направление 13. 03.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.11.2023

Просмотров: 21

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство науки и высшего образования Российской Федерации




Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Саратовский государственный технический университет имени Гагарина Ю.А.»

Институт Энергетики




Кафедра «Электроэнергетика и электротехника»




Направление 13.03.02 «Электроэнергетика и электротехника»










КОНТРОЛЬНАЯ РАБОТА

по дисциплине

Информатика

наименование дисциплины по учебному плану




на тему:

«Язык программирования PASCAL.ABC»

наименование темы/вариант







Студент (-ка)

Иванов Иван Иванович




Фамилия, имя, отчество студента

курса

1

группы

б1-ЭЛЭТз11



















№ зач. кн.

212813



































































Оценка




«




»




20

23

г.




(цифрой и прописью)










(дата)
















Преподаватель:




доцент, к.т.н.










/В.В.Ермолаева/

должность, ученая степень, уч. звание




подпись




Инициалы Фамилия

















































Рег. №




«




»




20




г.































/ /

(подпись)

(ФИО регистрирующего лица)







Саратов – 2023



РЕФЕРАТ

Контрольная работа состоит из пояснительной записки, выполненной в текстовом редакторе Microsoft Office Word 2010, на 21 страницах машинописного текста.

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

Задачами работы являются составление алгоритмов и программ различных видов: для работы с двумерными массивами, разветвляющимися алгоритмами, для обработки строк, для работы с циклическими алгоритмами, выполняемыми с фиксированным числом повторений или до выполнения заданного условия.

В задании 1 рассматриваются алгоритмы работы с двумерными массивами (матрицами) с помощью арифметических циклов с фиксированным числом повторений.

В задании 2 приводятся расчеты вычисления функции на заданном интервале изменения аргумента с заданным шагом изменения аргумента. Вид функции меняется в зависимости от значения аргумента.

В задании 3 рассматривается сравнение строковых переменных.

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

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

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

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

Задание 1 вариант 12
Изменить матрицу, заменив каждый отрицательный элемент, лежащий выше главной диагонали, его абсолютной величиной. Найти также сумму элементов главной диагонали.

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

Текст программы task_1 на языке Паскаль:



{Задание №1 Вариант №12

Изменить матрицу, заменив каждый отрицательный элемент,

лежащий выше главной диагонали, его абсолютной величиной.

Найти также сумму элементов главной диагонали}

{Константы и переменные}

const

Dim_A = 20;{Максимальная размерность матрицы}
var

N: Integer; {Размерность матрицы}

A: Array[1..Dim_A, 1..Dim_A] of Real;{Матрица из действительных элементов}

S: Real;{Сумма гл. диагонали}

I, J: Integer;{Параметры циклов}
{ Основная программа}

begin

Writeln('Задание №1');

Writeln('Вариант №12');

Writeln('----------------------------------');

{Ввод размерности матрицы}

Write('Размерность матрицы=');

Readln(N);

if N > Dim_A Then N := Dim_A;

{Ввод элементов матрицы и нахождение ср. арифм. гл. диагонали}

S := 0;

for I := 1 To N Do

for J := 1 To N Do

begin

Write('Элемент ', I, '-', J, '=');

Readln(A[I, J]);

if I = J Then S := S + A[I, J];

end;{For J}

{Вывод матрицы на экран по строкам}

Writeln('Введена матрица:');

Writeln('----------------------------------');

for I := 1 to N Do

begin

for J := 1 To N Do

Write(A[I, J]:6:2, ' ');

Writeln;

end;{For I}

{Замена отр. эл-тов выше гл. диагонали}

for I := 1 To N Do {Цикл по всем строкам}

for J := I + 1 To N Do {Цикл по элементам ниже гл. диагонали}

if A[I, J] < 0 Then A[I, J] := Abs(A[I, J]);

{Выдача результатов}

Writeln('Измененная матрица:');

Writeln('----------------------------------');

for I := 1 to N Do

begin

for J := 1 To N Do

Write(A[I, J]:6:2, ' ');

Writeln;

end;{For I}

Writeln('Сумма эл-тов гл. диагонали=', S:9:2);

Writeln('Нажмите Enter для завершения');

Readln;

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

  1. Матрица 5х5. Элементами матрицы являются положительные и отрицательные числа.

.



  1. Матрица 4х4 с положительными элементами.



.

Задание 2 вариант 12

g(x) = , для x[-0,1;5], hx = 0,39
Блок-схема программы task_2:


Текст программы task_2 на языке Паскаль:

{Задание №2 Вариант 12

Вычислить значения функции на интервале [-0.1..5]

с шагом 0.39}

{Описание переменных}

var

X: Real; {Аргумент}

XN, XK: Real;{Границы отрезка}

Hx: Real; {Шаг}


F: Real; {Функция}

NF: Integer;{Номер формулы для функции}

{Основная программа }

begin

Writeln('Задание №2 Вариант №12');

Writeln('-----------------------------------');

Write('Начало отрезка(-0.1)=');

Readln(XN);

Write('Конец отрезка(5)=');

Readln(XK);

Write('Шаг изменения аргумента(0.39)=');

Readln(Hx);

Writeln('Значения функции на интервале [', XN:6:2, '..', XK:6:2, '] c шагом ', Hx:6:2);

Writeln('-----------------------------------');

X:=XN;

while X <= XK Do {Цикл пока X<=XK}

begin

if X > 3

Then begin F := X + 1 / X; NF := 1; end

Else begin F := X * X + 1; NF := 2; end;

Writeln('X=', X:6:2, ' F(X)=', F:9:6, ' Формула N', NF); {Вывод значения аргумента и функции}

X := X + Hx;{Переход к следующему значению аргумента}

end;{While}

Writeln('-----------------------------------');

Writeln('Нажмите Enter для завершения');

Readln;

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


Задание 3 вариант 12
Написать программу, в которой:

    1. запрашивается номер школы, которую закончил студент;

    2. сравнивается введенная информация со значением строковой переменной (заданным в программе),;

    3. выводится на экран сообщение (совпал или не совпал номер школы).

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



Текст программы task_3 на языке Паскаль:
{Задание №3 Вариант №12

Написать программу, в которой:

a. запрашивается номер школы, которую закончил студент;

b. сравнивается введенная информация со значением строковой переменной (заданным в программе),;

c. выводится на экран сообщение (совпал или не совпал номер школы).

}

{Описание переменных}

var

S_Sravn,{Строка для сравнения}

S_School: String;{Вводимая строка}

{Основная программа}

begin

Writeln('Задание №3 Вариант №12');

Writeln('-------------------------------');

Write('Введите номер школы для сравнения==>');

Readln(S_Sravn);

Writeln('Задан номер школы ', S_Sravn);

repeat{Бесконечный цикл ввода строки для сравнения}

Write('Введите номер школы (пустая строка - завершение)==>');

Readln(S_School);

if S_School = '' Then Break;{Введена пустая строка, завершаем}

Write('Номер школы ', S_School);

if S_School <> S_Sravn Then Write(' не ');

Writeln(' совпадает с ', S_Sravn);

until False;{Конец цикла ввода строки}

Writeln('Нажмите Enter для завершения');

Readln;

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

В программе производится ввод номера школы для сравнения.

Затем в цикле производится ввод строки
, в которой содержится номер школы.

Введенная строка сравнивается с заданной строкой.

Завершение цикла ввода строки – пустая строка.


Задание 4 вариант 12

Написать программу для нахождения объёма конуса по основанию и высоте. Считаем, что основание конуса задано радиусом окружности R, высота конусаh.

Объем конуса вычисляется как



где S – площадь основания, вычисляемая по формуле

S=πR2


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

Текст программы task_4 на языке Паскаль:
{Задание №4 Вариант №12

Написать программу для нахождения объёма конуса по основанию и высоте.}

{Описание переменных}

var

R: Real; {Радиус основания}

H: Real; {Высота конуса}

S: Real;{Площадь основания}

V: Real;{Объем конуса}
{Основная программа}

begin

Writeln('Задание №4 Вариант №12');

Writeln('-------------------------');

Write('Радиус основания R=');

Readln(R);

Write('Высота H=');

Readln(H);

{Вычисление площади основания}

S := Pi * R * R;

Writeln('Площадь основания=', S:9:2);

{Вычисление объема}

V := S / 3 * H;

Writeln('Объем конуса=', V:9:3);

Writeln('-------------------------');

Writeln('Нажмите Enter для завершения');

Readln;

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



Задание 5 вариант 12

Написать программу для нахождения значения переменной S по формуле:
Выражение представляет из себя сумму n членов ряда, n член ряда представляет выражение n2.

Сумма может быть вычислена в цикле с фиксированным числом повторений n.
Блок-схема программы task_5:


Текст программы task_5 на языке Паскаль:
{Задание №5 Вариант №12

Написать программу для нахождения значения переменной S по формуле:

S=1+2^2+...+n^2}

{Описание переменных}

var

N: Integer; {Значение N}

I: Integer;{Параметр цикла}

S: Double;{Сумма ряда. Может быть большим числом}

{Основная программа}

begin

Writeln('Задание №5 Вариант №12');

Writeln('-------------------------');

Write('Введите N=');