Помощь в написании студенческих работ
Антистрессовый сервис

Алгоритмы для вычисления корней системы на языке Паскаль

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Паскаль — один из наиболее перспективных языков программирования. Он разработан в 1971 году математиком Никлаусом Виртом, профессором Института информатики Швейцарской высшей политехнической школы в Цюрихе. Язык получил наименование в честь знаменитого математика и философа Блеза Паскаля (1623−1662), который один из первых изобрел в 1641 году калькулятор (суммирующую машину). Интегрированность… Читать ещё >

Алгоритмы для вычисления корней системы на языке Паскаль (реферат, курсовая, диплом, контрольная)

Министерство образования Республики Беларусь Белорусский национальный технический университет Кафедра «Тепловые электрические станции»

КУРСОВАЯ РАБОТА ПО ИНФОРМАТИКЕ Исполнитель: Стражникова Е. В.

Гр. 106 422

Руководитель: Тарасевич Л.А.

Минск 2003 г.

1. Постановка задачи

Показанный на рисунке кривошипно-шатунный механизм описывается уравнением К1•S1•cos (цi)+K2•sin (цi)-K3=SiІ

при =1,2,3, где А1=К½;

А2=vА1І+А3І-К3 ;

А3=К2/2•А1;

Механизм должен удовлетворять следующим условиям:

i

Si

цi

1.0

20°

1.2

45°

2.0

60°

Спроектировать устройство, отвечающее всем трем указанным условиям. Для этого записать трижды уравнение, описывающее работу механизма, и найти Кi, какие значения А1, А2, А3 соответствуют искомому решению?

2. Краткое описание Pascal

Язык программирования Язык — это средство общения между людьми, человеком и машиной и между машинами. Языки могут быть естественные и искусственные, или формальные. Естественным языкам присуща неопределенность и неточность. Искусственные языки, предназначенные для записи программ, называют алгоритмическими или языками программирования.

Алгоритмический язык — это набор символов, являющихся алфавитом языка, система правил связи символов для образования «слов» и «предложений» (синтаксис языка), с помощью которых представляются компоненты языка, и система правил их истолкования (семантика).

Паскаль — один из наиболее перспективных языков программирования. Он разработан в 1971 году математиком Никлаусом Виртом, профессором Института информатики Швейцарской высшей политехнической школы в Цюрихе. Язык получил наименование в честь знаменитого математика и философа Блеза Паскаля (1623−1662), который один из первых изобрел в 1641 году калькулятор (суммирующую машину).

Язык удовлетворяет требованиям структурного программирования: он имеет операторы для реализации управляющих структур программирования. Хороший выбор структур данных позволяет разрабатывать на языке Паскаль простые и эффективные алгоритмы. В 1979 году принят стандарт Паскаля. Основной целью разработки Паскаля было дать язык, пригодный для обучения программированию как систематической дисциплине. Достоинства Паскаля:

ь он ориентирован на структурное программирование, имеет развитые средства контроля и достаточно прост в изучении;

ь язык имеет хороший состав типов и структур данных;

ь трансляторы есть во всех распространенных ПК;

ь конкретные реализации языка дают возможность использовать все аппаратные средства ПК;

ь на основе языка Паскаль разработан Delphi — одна из современных систем визуального программирования.

Недостатки языка Паскаль: в нем нет операции возведения в степень.

Интегрированная среда TURBO PASKAL

Система программирования TURBO PASKAL представляет собой интегрированную среду, включающую в себя экранный редактор, компилятор, редактор связей, отладчик.

Интегрированность среды проявляется не только в единой идеологии построения компонент, но и в связи их друг с другом: при возникновении ошибки TURBO автоматически переходит в режим экранного редактирования и позиционирует курсор в точку возникновения ошибки. Аналогичные действия выполняются и отладчиком при возникновении ошибки во время выполнения программы.

Структура языка Паскаль Структура различных языков программирования однотипна. Они должны иметь средства для:

ь определения свойств объектов программы (ее данных);

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

ь организации процесса обработки данных (разветвлений процесса обработки данных и циклической обработки);

ь ввода-вывода данных, т. е. обмена данными между ОП и внешними устройствами (магнитными дисками, портами, принтером);

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

Схематичная структура языка Паскаль

Рис. 2.1 Структура языка Паскаль Классификация операторов Программа на языке Паскаль состоит из операторов. Операторы — это единицы действия языка. Синонимы операторов: предложения, утверждения, инструкции, Statement. Операторы могут быть выполняемые и невыполняемые Выполняемые производят вычисления или управляют процессом вычислений. Невыполняемые содержат сведения о структуре и организации данных, их свойствах и размещении данных в памяти. Почти все операторы начинаются ключевым словом.

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

Встроенные процедуры и функции языка Паскаль В языке Паскаль можно использовать как подпрограммы (процедуры и функции), разработанные программистом, так и встроенные (стандартные) подпрограммы, расположенные в его модулях (библиотеках). Паскаль содержит 8 стандартных модулей, в том числе: System, Crt, DOS, Graph, Overlay. Для использования их процедур и функций надо после оператора PROGRAM записать оператор

Uses список-имен-используемых-модулей.

Подключение модуля System производится по умолчанию, без указания его имени в списке Uses. В модуле System располагаются наиболее часто используемые процедуры и функции языка. Основная группа процедур и функций модуля System:

ь процедуры управления выполнения программы;

ь функции преобразования типов;

ь процедуры и функции для переменных ординального типа;

ь математические функции;

ь процедуры и функции для работы со строками;

ь процедуры и функции управления динамической памятью;

ь процедуры ввода-вывода и работы с файлами и каталогами.

Процедуры и функции модуля Crt предназначены для работы с экраном: его очистки, управления движением курсора на экране, управление клавиатурой, определения цветов фонов и символов, управления звуком и окнами экрана.

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

Процедуры и функции DOS предназначены для обслуживания прерываний, проверки состояния диска, обработки файлов, управления процессами и операционной средой.

Рис. 2.2 Структура программы на языке Паскаль Программа на языке Паскаль состоит из заголовка программы и блока (тела программы). Заголовок программы или подпрограммы — это один из операторов:

PROGRAM — для программы;

PROCEDURE — для процедуры;

FUNKTION — для функции.

Процедуры и функции могут иметь ряд уровней вложенности, т. е. могут быть вложены в другие процедуры или функции.

Блок программы и подпрограммы на языке Паскаль состоит из двух частей:

1. декларативной — описание (объявления) данных программы и текстов подпрограмм (разделы описаний);

2. выполнимой — описания действий, которые надо выполнить над данными (раздел операторов).

Блок включает все, кроме заголовка программы или подпрограммы. В общем случае блок может состоять из шести разделов различных типов. Все они, кроме раздела операторов, необязательны. Каждый раздел описаний начинается ключевым словам:

LABEL — для определения меток;

CONST — для определения констант;

TYPE — для определения типов данных;

VAR — для определения переменных;

PROCEDURE и FUNKTION — для определения процедур и функций;

BEGIN — определяет начало раздела операторов программы.

Оператор PROGRAM должен быть первым в программе, раздел операторов программы — вторым. А между ними может быть сколько угодно разделов описаний в любом порядке. Типы и константы могут использоваться в последующих описаниях типов и переменных и программ.

Последовательность разделов описания объектов (LABEL, CONST, TYPE, VAR и др.) программы может быть произвольной. В случае необходимости типы разделов могут повторяться. Умолчаний в Паскале нет. Все, что используется в программе: константы, переменные, метки, — должно быть объявлено явно. Каждый объект программы должен быть описан и только один раз для данной области действия, объекты программы имеют областью их действия блок, в котором они объявлены, и все вложенные в него блоки, процедуры и функции, в которых они не переобъявлены. Поэтому одни и те же идентификаторы можно использовать в различных подпрограммах (процедурах и функциях) программы в разных смыслах.

паскаль алгоритм уравнение итерация

3. Математическая модель Метод Гаусса Этот метод представляет собой конечный алгоритм для вычисления корней системы.

За основу метода принята идея последовательного исключения неизвестных и приведение СЛАУ к «треугольному» виду.

Алгоритм решения СЛАУ:

А11Х1+А12Х2+А13Х3=В1; (1)

А21Х1+А22Х2+А23Х3=В2 (2)

А31Х1+А32Х2+А33Х3=В3 (3)

1. если А11?0 (т.е. система не является вырожденной) делим первое уравнение на А11

2. исключим из уравнения (2) Х1, для этого умножим уравнение (1) на коэффициент А21 и вычтем из уравнения 2 А21Х1

3. исключим из уравнения (3) Х1, для этого умножим уравнение (1) на коэффициент А31 и вычтем из уравнения (1) уравнение (3), т. е. исключаем из уравнения (3) А31Х1, исходное СЛАУ примет вид А11Х1+А12*Х2+А13*Х3=В1* (1)

А22*Х2+А23*Х3=В2* (2)

А32*Х2+А33*Х3=В3* (3)

4. разделим уравнение (2) на коэффициент А22*

5. исключим из уравнения (3) Х2, для этого умножим уравнение (2) на коэффициент А32* и вычтем из уравнения (2) уравнение (3), т. е. исключаем из уравнения (3) А32*Х2, исходное СЛАУ примет вид А11Х1+А12**Х2+А13**Х3=В1** (1)

А22**Х2+А23**Х3=В2** (2)

А33**Х3=В3** (3)

т.о. исходное СЛАУ приводится к эквивалентной системе с треугольной матрицей. Процедура нахождения неизвестной из полученной треугольной СЛАУ осуществляется обратным ходом.

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

Алгоритм решения СЛАУ А11Х1+А12Х2+А13Х3=В1 (1)

А21Х1+А22Х2+А23Х3=В2 (2)

А31Х1+А32Х2+А33Х3=В3 (3)

Пусть

¦ А11 А12 А13 ¦ ¦В1¦ ¦Х1¦

А=¦ А21 А22 А23 ¦ В=¦В2¦ Х=¦Х2¦

¦ А31 А32 А33 ¦ ¦В3¦ ¦Х3¦

тогда АХ=В Предполагая, что Аii?0 i€[1,3], разрешим уравнение (1) относительно Х1, уравнение (2) относительно Х2, уравнение (3) относительно Х3.

Х1=в1+Ь12Х2+ Ь13Х3 (1)

Х2=в2+Ь21Х2+ Ь23Х3 (1)

Х3=в3+Ь31Х2+ Ь32Х3 (1)

где вi=вi/Ьii; Ьij=-Ьij/Ьii

¦ Ь11 Ь12 Ь13 ¦ ¦в1¦ ¦Х1¦

Ь=¦ Ь21 Ь22 Ь23 ¦ в=¦в2¦ Х=¦Х2¦

¦Ь31 Ь32 Ь33¦ ¦в3¦ ¦Х3¦

исходная СЛАУ примет вид Х=в+ўХ.

Далее решаем методом последовательных приближений. За начальное приближение принимаем столбец свободных членов:

Х1°=в1; Х2°=в2; Х3°=в3

Алгоритм нахождения корней системы следующий:

Х1№=в1+ЬХ1°;

Х2№=в2+ЬХ2°;

Х3№=в3+ЬХ3°.

Вычисления заканчиваются тогда, когда разность между двумя ближайшими итерациями значения корня будет меньше о т. е.

¦Х1?-Х1?О№¦<=о;

¦Х2?-Х2?О№¦<=о;

¦Х3?-Х3?О№¦<=о.

Метод Зейделя

Этот метод представляет собой некоторую модификацию метода итерации. Основная идея заключается в том, что при вычислении n-ого приближения неизвестной Хi учитываются уже вычисленные (n-1)-ые значения переменных Х1, Х2, Х3.

Пусть дана СЛАУ А11Х1+А12Х2+А13Х3=В1 (1)

А21Х1+А22Х2+А23Х3=В2 (2)

А31Х1+А32Х2+А33Х3=В3 (3)

Разрешим каждое из уравнений относительно Х1, Х2, Х3.

Приведенная система имеет вид: Хi = вi +? Ьij Хi;

Выберем произвольное начальное приближение Х1°, Х2°, Х3°.

Далее предполагая, что (n-1)-ое приближение корней Хi? О№ корней известно, будем строить n-ое приближение корней по методу Зейделя по следующим формулам:

Х1?=в1+?Ь1jХj?О№;

Х2?=в2+?Ь2jХj?О№+Ь2jX1?;

Х3?=в3+?Ь3jХj?О№+Ь3jX1?.

Обычно метод Зейделя дает лучшую сходимость, чем метод итерации, но приводит к более громоздким вычислениям. Процесс вычисления заканчивается тогда, когда выполняется условие ¦Хi?-Хi?О№¦<=о, т. е. разность приближений корня в соседних итерациях меньше или равна заданной точности

4. Блок-схемы Основная программа

Метод Гауса

Метод итераций

Метод Зейделя

6. Текст программы

PROGRAM kyrsach;

Uses crt;

Var

s, fi, x: array [1.3] of real;

a: array [1.3,1.4] of real;

i, j: integer;

K1, K2, K3, A1, A2, A3: real;

regime: byte;

ch: char;

Type dlina = string [22];

********формирование рамки********

Procedure frame (x1, y1, x2, y2: byte);

Const

a = #186; b = #187; c = #188;

d = #200; e = #201; f = #205;

Begin

gotoxy (x1, y1);

write (e);

for i:= (x1+1) to (x2−1) do write (f);

write (b);

for i:= (y1+1) to (y2−1) do begin

gotoxy (x1, i);

write (a);

gotoxy (x2, i);

write (a);

end;

gotoxy (x1, y2);

write (d);

for i:= (x1+1) to (x2−1) do write (f);

write (c);

End;

********выбор цвета********

Procedure cf (c, f: byte);

Begin

textcolor (c);

textbackground (f);

End;

********процедура задержки********

Procedure payza (n: byte);

Begin

for i:= 1 to n do

delay (10 000);

end;

********формирование титульного листа********

Procedure zastavka;

Var ch: char;

Begin

clrscr;

window (1, 1, 80, 25);

cf (14, 0);

clrscr;

frame (3, 3, 78, 24);

payza (5);

gotoxy (36, 4); write ('БНТУ');

payza (5);

gotoxy (35, 6); write ('МНО РБ');

payza (5);

gotoxy (25, 9); write (`Курсовой проект по информатике');

payza (5);

gotoxy (45, 14); write ('Исполнила: Стражникова Е. В.');

gotoxy (45, 15); write ('Проверил: Тарасевич Л. А.');

payza (5);

gotoxy (35, 22); write ('Минск 2003');

readkey;

clrscr;

End;

********звуковай сигнал********

Procedure beep;

Begin

sound (800);

payza (1);

nosound;

End;

********формирование меню********

Procedure menu (q1, q2, q3: byte;

ss1, ss2, ss3, ss4, ss5, ss6, ss7, ss8: dlina;

var result: byte);

Label met, men;

Const kr = 8;

Var m: array [1.kr] of string [48];

i, t: byte;

pp: array [1.kr] of byte;

f1: boolean;

Begin

f1:= true;

m[1]: = ss1; m[2]: = ss2; m[3]: = ss3; m[4]: = ss4;

m[5]: = ss5; m[6]: = ss6; m[7]: = ss7; m[8]: = ss8;

t:= length (m[1]);

for i:= 2 to q3 do

if length (m[i])>t then t:= length (m[i]);

frame (q1−1, q2, q1+t+5, q2+q3+1);

for i:= 1 to q3 do begin

if i = 1 then cf (0,10)

else cf (10,0);

gotoxy (q1, q2+1);

write (m[i]);

end;

gotoxy (14, 3);

cf (15+128, 1);

write ('С помощью ', chr (25), ' или ', chr (24),

укажите режим и нажмите', «Enter» ');

cf (7, 0);

men: i:= 1;

while f1 = true do begin

ch:= readkey;

if ch = #13 then f1:= false;

if (ch = #0) and keypressed then begin

ch:= readkey;

case ch of

#80: begin

beep;

gotoxy (q1, q2+i);

cf (10, 0);

write (m[i]);

i:= i+1;

if I = (q3+1) then begin

i:= 1;

cf (10, 0);

gotoxy (q1, q2+1);

cf (0, 10);

write (m[i]);

cf (10, 0);

goto met;

end;

gotoxy (q1, q2+i);

cf (0, 10);

write (m[i]);

cf (10, 0);

end;

#72: begin

if i = 1 then goto met;

gotoxy (q1, q2+i);

beep;

cf (10, 0);

write (m[i]);

i:= i-1;

gotoxy (q1, q2+i);

cf (0, 10);

write (m[i]);

end;

end;

met:

end;

end;

result:= i;

cf (10, 0);

End;

********формирование надписей********

Procedure menu1;

Begin

ch:= readkey;

if ch = #13 then begin

clrscr;

menu (27, 9, 8, ' М е н ю. ',

' ',

' Метод Гаусса. ',

' Метод итераций. ',

' Метод Зейделя. ',

' ',

' Выход ',

' ', regime);

end;

End;

********ввод исходных данных********

Procedure text;

Begin

clrscr;

writeln ('Введите исходные данные');

for i:= 1 to 3 do begin

write ('S', i,'='); readln (S[i]);

write ('FI', i,'='); readln (FI[i]); end;

clrscr;

cf (9, 0);

writeln (' И С Х О Д Н Ы Е Д, А Н Н Ы Е `);

cf (10, 0);

writeln;

writeln ('—————————');

writeln (' i | Si | FIi ');

writeln ('—————————');

for i:= 1 to 3 do

writeln ('| ', i,' | ', s[i]: 0:1,' | ', fi[i]: 0:1,' |');

writeln ('—————————');

writeln;

payza (10);

writeln ('K1*Si*cos (FIi)+K2*sin (FIi)-K3=Si2');

writeln;

cf (9, 0);

writeln ('Система уравнений');

writeln;

cf (10, 0);

for i:= 1 to 3 do

writeln ('K1*', S[i]: 0:1,'*cos (', FI[i]:0:1,')*K2*sin (', FI[i]:0:1,')-K3=', S[i]:0:1,'^2');

writeln;

payza (10);

for i:= 1 to 3 do

FI[i]: = pi/180*FI[i];

for i:= 1 to 3 do begin

a[i, 1]: = S[i]*cos (FI[i]);

a[i, 2]: = sin (FI[i]);

a[i, 3]: = -1; a[i, 4]: = sqr (S[i]);

end;

end;

********метод Гауса********

Procedure gays;

Var n, k, m: real;

Begin

n:= a[1, 1]; k:= a[2, 1]; m:= a[3, 1];

if a[1, 1] = 0 then writeln ('Система является вырожденной');

for j:= 1 to 4 do begin

a[1, j]: = a[1, j]/n;

a[2, j]: = a[1, j]*k — a[2, j];

a[3, j]: = a[1, j]*m — a[3, j]; end;

n:= a[2, 2]; k:= a[3, 2];

for j:= 1 to 4 do begin

a[2, j]: = a[2, j]/n;

a[3, j]: = a[2, j]*k — a[3, j];

end;

K3:= a[3, 4]/a[3, 3];

K2:= a[2, 4]-a[2, 3]*K3;

K1:= a[1, 4]-a[1, 3]*K3 — a[1, 2]*K2;

writeln;

cf (9, 0);

writeln (`Решение системы');

writeln;

cf (13, 0);

writeln ('K1=', K1:0:5);

writeln ('K2=', K2:0:5);

writeln ('K3=', K3:0:5);

payza (10);

writeln;

End;

********метод Зейделя********

Procedure zeydel;

Label z;

Var e, k11, k22, k33: real;

Begin

writeln ('Введите требуемую точность вычислений');

write ('e=');

readln (e);

K11:= a[1, 4]/a[1, 1]; K22:= 0; K33:= 0;

K1:= 0; K2:= 0; K3:= 0;

z: K1:= (a[1, 4]-a[1, 2]*K22 — a[1, 3]*K33)/a[1, 1];

K2:= (a[2, 4]-a[2, 1]*K1 — a[2, 3]*K33)/a[2, 2];

K3:= (a[3, 4]-a[3, 1]*K1 — a[3, 2]*K2)/a[3, 3];

if (abs (K1 — K11) >= e) and (abs (K2 — K22) >= e) and (abs (K3 — K33) >= e)

then begin

K11:= K1; K22:= K2; K33:= K3;

goto z;

end

else begin

cf (9, 0);

writeln ('Решение системы.');

writeln;

cf (13, 0);

writeln ('K1=', k1:0:5);

writeln ('K2=', k2:0:5);

writeln ('K3=', k3:0:5);

end;

End;

********метод итераций********

Procedure iter;

Label z;

Var e, k11, k22, k33: real;

Begin

writeln ('Введите требуемую точность вычислений');

write ('e=');

readln (e);

K11:= a[1, 4]/a[1, 1]; K22:= a[2,4]/a[2, 2]; K33:= a[3,4]/a[3, 3];

K1:= 0; K2:= 0; K3:= 0;

z: K1:= (a[1, 4]-a[1, 2]*K22 — a[1, 3]*K33)/a[1, 1];

K2:= (a[2, 4] - a[2, 1]*K11 — a[2, 3]*K33)/a[2, 2];

K3:= (a[3, 4] - a[3, 1]*K11 — a[3, 2]*K22)/a[3, 3];

if (abs (K1 — K11) >= e) and (abs (K2 — K22) >= e) and (abs (K3 — K33) >= e)

then begin

K11:= K1; K22:= K2; K33:= K3;

goto z;

end

else begin

cf (9, 0);

writeln (`Решение системы');

writeln;

cf (13, 0);

writeln ('K1=', k1:0:5);

writeln ('K2=', k2:0:5);

writeln ('K3=', k3:0:5);

end;

End;

********проверка решения системы********

Procedure prov;

Begin

cf (9, 0);

writeln ('Проверка. ');

writeln;

cf (10, 0);

for i:= 1 to 3 do begin

a[i, 1]: = S[i]*cos (FI[i]);

a[i, 2]: = sin (FI[i]);

a[i, 3]: = -1; a[i, 4]: = sqr (S[i]);

end;

writeln ('K1*Si*cos (FIi)+K2*sin (FIi)-K3=Si2');

writeln;

for i:= 1 to 3 do begin

write (K1:0:1,'*', S[i]: 0:1,'*cos (', FI[i]:0:1,')+', K2:0:1,'*sin (', FI[i]:0:1,')',-K3:0:1,'=');

x[i]:= a[i, 1]*K1+a[i, 2]*K2-K3;

writeln (x[i]: 0:2,'=(S', i,')^2');end;

if (x[1] = 1.00) and (x[2] = 1.44) and (x[3] = 4.00)

then writeln ('Система решена верно.');

writeln;

End;

********нахождение значений********

Procedure yrav;

Begin

A1:= K½; A3:= K2/(2*A1);

A2:= sqrt (sqr (A1) + sqr (A3)-K3);

payza (10);

cf (9, 0);

writeln ('Коффициенты');

cf (13, 0);

writeln;

writeln ('A1=', A1:0:5);

writeln ('A2=', A2:0:5);

writeln ('A3=', A3:0:5);

cf (10, 0);

menu1;

readkey;

End;

********формирование пустого окна********

Procedure pusto;

Begin

gotoxy (10, 14);

write ('О Ш И Б К, А П Р И В Ы Б О Р Е О П Е Р, А Т О Р А');

sound (330); delay (32 000); nosound;

sound (330); delay (32 000); nosound;

sound (330); delay (32 000); nosound;

sound (262); delay (55 000);

sound (294); delay (32 000); nosound;

sound (294); delay (32 000); nosound;

sound (294); delay (32 000); nosound;

sound (247); delay (55 000); nosound;

menu1;

End;

********тело основной программы********

BEGIN

clrscr;

zastavka;

clrscr;

menu1;

clrscr;

case regime of

1, 2, 6, 8: pusto;

3: begin

text;

gays;

prov;

yrav;

end;

4: begin

text;

iter;

prov;

yrav;

end;

5: begin

text;

zeydel;

prov;

yrav;

end;

7: begin clrscr; halt; end;

end;

readkey;

END.

7. Результаты счета

Где

i

Si

цi

1.0

20°

1.2

45°

2.0

60°

8. Список используемой литературы.

Ю.С. Бородич, А. Н. Васильев А.И. Кузьмич «Паскаль для персональных компьютеров». Минск — 1991 вышэйшая школа С. В. Мизрохи «TURBO PASKAL и объектно-ориентировочное программирование» Москва — 1992 «финансы и статистика».

Я. Янсон (перевод с немецкого Н.С.Сойфер) «Турбо-Паскаль в сжатом изложении». Москва — 1991 «мир».

Показать весь текст
Заполнить форму текущей работой