Разработка программы с помощью языка программирования Pascal ABC
Анализ незаполненного шаблона вывода результатов решения задачи. Знакомство с разработкой программы с помощью языка программирования Pascal ABC. Общая характеристика структурной схемы алгоритма в виде блок-схемы. Этапы расчета элементов матрицы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 21.01.2014 |
Размер файла | 205,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1.Содержательная постановка задачи
Задание №1.1. Расчет матрицы изгибающих моментов.
Требуется разработать программный продукт расчета матрицы изгибающих моментов для стержневого элемента (балки) при воздействии на неё изменяющихся нагрузок в равноотстоящих сечениях (рис.1).
Рис.1 Равноотстоящие нагрузки на стержневом элементе
Вариант 15. Со сканирующей нагрузкой, т.е. изменение вектора нагрузки обусловлено перемещением нагрузки Рск последовательно с сечения с номером 1 по сечение номер К.
Исходные данные.
Длина балки L=3,66м;
Количество сечений К=4;
Величина нагрузки в сечениях Р1=1,2; Р2=6,4; Р3= -5,8; Р4= -0,6;
Величина сканирующей нагрузки Рск= -1,6.
2.Математическая модель задачи
Рассмотрим балку длиной L, на которую в К равноотстоящих сечениях воздействуют нагрузки (рис.1).
Представим нагрузку на балку в виде вектора . Каждый элемент вектора-столбца равен значению нагрузки, воздействующей на балку в сечении с номером, соответствующем индексу строки вектора:
Знак значении элемента вектора в соответствующем сечении определяется направлением его воздействия на балку: знак «+» при воздействии элемента на балку и знак «-» при направлении воздействия от балки.
Известно, что матрица изгибающих моментов равна произведению матрицы влияния изгибающих моментов размерности [K*K] на вектор нагрузок размерности [K]:
= * .
Элемент матрицы влияния изгибающих моментов S(i,j) равен изгибающему моменту в i-м сечении при единичной нагрузке в сечении j, т.е. при условии Pj=1. Таким образом, элементы строки матрицы представляют значения изгибающих моментов в сечениях, соответствующих индексу строки от воздействия единичной силы, расположенной в сечении с номером столбца. Строка матрицы влияния образует собой линию влияния с номером этой строки. Матрица влияния представляет собой произведение некоторой матрицы на константу:
Матрица имеет размерность матрицы , а её элементы определяются по формуле:
A[i,j]=(K - i + 1)*j (при i ? j).
Матрица симметрична, т.е. A[i,j]=A[j,i].
Следовательно, чтобы рассчитать матрицу изгибающих моментов, необходимо:
1. Определить количество сечений К.
2. Найти элементы матрицы из условия
A[i,j]=(K - i + 1)*j (при i ? j) и условия симметрии.
3. Найти элементы матрицы влияния по формуле:
,
Для удобства расчетов введем коэффициент
4. Определить элементы вектора при условии воздействия Рск на сечение с номером i:
P[i]=P0[i]+Pск,
P[j]=P0[j], при j ? i
Для i от 1 до К получаем К векторов.
5. Рассчитать элементы матрицы как произведение
= *
для рассчитанных векторов .
Результатом произведения матрицы размерности К на вектор-столбец размерности К будет также вектор-столбец размерности К, i-тый элемент которого равен сумме произведений элементов i-той строки матрицына соответствующий им элемент вектора-столбца , т.е.:
.
Учитывая, что вектор будет изменяться К раз, получим К векторов-столбцов результатов расчета. Иными словами, получим матрицу изгибающих моментов размерности [K*K], каждый i-ый столбец которой равен изгибающим моментам в сечениях при воздействии сканирующей нагрузки на i-ое сечение.
язык программирование pascal
Таблица. Спецификация
Ис. обоз. в зад. |
Значение |
Тип |
Идентиф. |
Вид |
Формат |
Размер. |
Назначение |
|
L |
3,66 |
Действительный |
L |
Простая |
Длина балки |
|||
Pск |
-1,6 |
Действительный |
Pck |
Простая |
Сканирующая нагрузка |
|||
K |
4 |
Целый |
K |
Простая |
Количество сечений |
|||
P1,P2,P3,P4 |
1,2; 6,4; -5,8; -0,6 |
Действительный |
P0 |
Массив одномерный |
[1..K] |
Нагрузка в сечениях |
||
A[i,j]=(K-i+1)*j (при i ? j) |
Действительный |
А |
Массив двумерный |
[1..K,1..K] |
Для расчета мат. влияния |
|||
Действительный |
b |
Простая |
Для удобства расчетов |
|||||
Действительный |
S |
Массив двумерный |
[1..K,1..К] |
Матрица влияния |
||||
P[j]=P0[j]+Pск, при j=i; P[j]=P0[j], при j ? i |
Действительный |
P |
Массив одномерный |
[1..K] |
Нагрузка при сканирующей нагрузке в i-m сечении |
|||
= * |
Действительный |
M |
Массив двумерный |
[1..K,1..К] |
Матрица изгиб. моментов |
|||
i,j |
Вспомогат. переменные |
Структурная схема алгоритма в виде блок-схемы
Схема
Схема
3.Программа на языке Паскаль
Для работы использовалась программа Pascal ABC. Файл программы Moment.pas прилагается.
Program moment;
const k=4;
L=3.66;
Pck=-1.6;
var i,j:integer;
b:real;
P0: array [1..k] of real;
P: array [1..k] of real;
A: array [1..k,1..k] of real;
S: array [1..k,1..k] of real;
M: array [1..k,1..k] of real;
begin
{ввод значений вектора нагрузок Р}
for i:=1 to k do
begin
write('введите значение нагрузки Р',i,' =');
readln(P0[i]);
end;
{расчет элементов матрицы А}
for i:=1 to k do
for j:=1 to k do
if i<=j then A[i,j]:=(k-i+1)*j else A[i,j]:=A[j,i];
{расчет коэффициента для матрицы S}
b:=L/((k+1)*(k+1));
{расчет элементов матрицы S}
for i:=1 to k do
for j:=1 to k do
S[i,j]:=b*A[i,j];
{расчет элементов матрицы М}
for i:=1 to k do
for j:=1 to k do
begin
{расчет элементов вектора Р при воздействии Рск на сечение с номером
if i=j then P[j]:=P0[j]+Pck else P[j]:=P0[j];
{расчет элементов матрицы М при воздействии Рск на сечение с номером i}
M[i,j]:=M[i,j]+S[i,j]*P[j];
end;
{вывод результатов}
writeln ('Матрица изгибающих моментов равна');
for i:=1 to k do
begin
for j:=1 to k do
write ('M[',i,',',j,']=',M[i,j]:8:2,' ');
writeln();
end;
end.
4.Интерфейс (шаблон ввода) исходных данных
Длина балки L=3.66, количество сечений k=4 и величина сканирующей нагрузки Pck=-1.6 введены в разделе определения констант. Для ввода данных нагрузки в сечениях Р1, Р2, Р3, Р4 введена переменная сложного типа - одномерный массив Р0. Для ввода значений массива организован цикл с параметром, внутри которого ввод с клавиатуры осуществляется при помощи оператора readln(). Для подсказки пользователю использовался оператор write().
{ввод значений вектора нагрузок Р}
for i:=1 to k do
begin
write('введите значение нагрузки Р',i,' =');
readln(P0[i]);
end;
Рис. 2 Процесс ввода данных с клавиатуры.
5.Незаполненный шаблон вывода результатов решения задачи
Для вывода (и расчета) результатов - матрицы изгибающих моментов, введена переменная сложного типа - двумерный массив М размерности [K*K].
Вывод матрицы начинается с заголовка «Матрица изгибающих моментов равна». Для чего использован оператор writeln().
Для вывода значений массива организован вложенный (двойной) цикл с параметром, внутри которого вывод на экран осуществляется при помощи оператора write(). Для перевода на следующую строку матрицы используется оператор writeln().
Вывод каждого элемента матрицы производится в формате 8:2, т.е. всего знаков в выводимом числе 8, дробная часть ограничена двумя знаками.
Шаблон вывода результатов:
Рис. Матрица изгибающих моментов равна
Программная реализация:
{вывод результатов}
writeln ('Матрица изгибающих моментов равна');
for i:=1 to k do
begin
for j:=1 to k do
write ('M[',i,',',j,']=',M[i,j]:8:2,' ');
writeln();
end;
Результат выполнения программы:
Рис.3 Результат выполнения программы.
1. Размещено на Allbest.ru
...Подобные документы
Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.
курсовая работа [446,0 K], добавлен 19.06.2014Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.
курсовая работа [37,3 K], добавлен 28.06.2008Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.
курсовая работа [102,7 K], добавлен 23.12.2011Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.
контрольная работа [286,3 K], добавлен 10.04.2011Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.
курсовая работа [2,1 M], добавлен 23.02.2011Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.
курсовая работа [28,3 K], добавлен 13.06.2007Основные сведения о языке программирования Pascal. Листинг программы с комментариями. Диагональ элементов вектора и матрицы. Использование команд ввода-вывода информации. Быстродействие выполнения программы при компиляции. Отражение процессов вычисления.
курсовая работа [1,9 M], добавлен 05.05.2009Разработка программы в среде программирования Borland Pascal, которая является электронным тестирующим пособием в области химии для 8-10 классов. Написание алгоритма решения задачи, определение необходимых функций, процедур, модулей, файловых переменных.
контрольная работа [389,3 K], добавлен 19.09.2010История и задачи разработки языка программирования Pascal. Понятие и характерные особенности типизированного файла, основные операции с файловыми переменными. Блок-схема алгоритма и исходный текст программы для обработки сведений об учениках школы.
контрольная работа [55,3 K], добавлен 31.07.2013Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.
курсовая работа [359,4 K], добавлен 05.01.2010Понятие алгоритма, его свойства и способы описания. Схемы алгоритмических конструкций: линейная, разветвляющаяся, циклическая. Особенности и применение электронных таблиц Excel. Задачи, решаемые с помощью системы Mathcad. История создания языка Pascal.
курсовая работа [601,9 K], добавлен 20.11.2010Характеристика используемой операционной системы, языка программирования. Структура программы на языке Turbo Pascal 7.1. Операторы языка Turbo Pascal. Проведение сортировки записей. Алгоритмы программы и подпрограмм. Причины возникновения ошибок.
курсовая работа [454,1 K], добавлен 13.06.2014Теоретические и практические аспекты решения прикладных задач с применением функций и процедур структурного (модульного) программирования. Особенности разработки схемы алгоритма и программы для вычисления массива z на языке Turbo Pascal 7.0, их описание.
курсовая работа [241,7 K], добавлен 11.12.2009Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
курсовая работа [385,0 K], добавлен 17.09.2009Требования к интерфейсу программного продукта, характеристика операционной системы Windows XP и языка программирования разветвляющихся и циклических процессов Pascal. Структура условного оператора. Описание алгоритма работы с помощью блок-схемы, листинг.
курсовая работа [268,0 K], добавлен 25.12.2010