Основы программирования на языке Pascal(Основы работы со ссылочным типом в языке программирования Pascal)
Содержание:
Введение
Во всех вычислительных системах память принадлежит к ресурсам, которых зачастую не хватает. Управлять памятью – самая основная забота разработчиков ПО, в связи с тем, что для нее необходимо создавать программы, которые отлично употребляют память.
Статические также как и динамические переменные вызывают по их адресу. Без адресов нереально получение доступа к необходимым ячейкам памяти, но, если применять статические переменные, то можно конкретно адреса не указывать, а обращаться к переменным по именам. Компилятор располагает все переменные в памяти и производит подстановку подходящих адресов в код команды.
Управления памятью относится к широкому классу объектов. Разработчики ПО сами должны резервировать места под переменные, определять значение указателя, очищать память – удалять динамическую переменную. При использовании динамических переменных кое-где в программе необходимы указатели на них. Компиляторы предугадывают места под указатели, об инициализациях указателей должны хлопотать разработчики ПО.
Актуальность темы заключается приемущественно в том, что в современном мире написания многофункциональных программ без использования динамических структур данных практически нереально. Кроме того, нужно умение оперирования с такой структурой, применяя правильные подходы к голосованию способов решений назначенных задач. Поэтому исследование этого вопроса находится нужным, как в теории так и на практике.
Объектом работы выступают ссылочные типы языка программирования Pascal.
Предмет работы – создание ссылочных типов в ящыке программирования Pascal.
Цель исследования – найти значимость использования ссылочных типов в языке программирования Pascal при разработке программ.
В согласовании с поставленной целью были определены последующие задачи работы: найти и провести изучение нужной литературы по теме исследования; выделить теоретические базы использования ссылочных типов; на практических заданиях разглядеть механизмы работы со ссылочным типом; сделать заключения по совершенной работе.
Базу для написания работы составили работы таковых создателей, как Фаронов В.В., Шпак Ю.А., Меженный О.А., Немнюгин С.А., внесших большой вклад в исследовании этой темы.
Глава 1. Основы работы со ссылочным типом в языке программирования Pascal.
Типы данных Pascal.
Паскаль (англ. Pascal) — один из более узнаваемых языков программирования, употребляется для обучения программированию в старших классах и на первых курсах высших учебных заведений, является базой для ряда остальных языков.
Pascal – язык с серьезной типизацией переменных. Это означает, что мы непременно должны тип каждой , и не можем переменной 1-го значение другого (если лишь не равнозначны).
В примера возьмем программы, вычисляющей круга по радиусу:
S := r*r*3.14;
Если укажем, что у S целочисленный тип, будет работать правильно, в связи с , что результатом r*r*3.14 будет дробь, и целочисленной переменной значение мы можем.
Очередной . Программа складывает 2-ух переменных:
a:=5; b:=4; c := a+b;
мы укажем, a, b и c являются числами, полностью разумно , что после программы значение c равно 9-ти. что будет, a и b являются не , а ординарными знаками, а c – ?
a:=‘5’; b:=‘4’; c := a+b;
В данном случае не можем математически два (ну правда, же не математически сложить буквы), и знаки подставятся друг к , другими словами c будет равно ‘54’.
считая этого, пуска программы каждой переменной в выделяется некое байт, которое от типа переменной. И значения, может принять , ограничены этим байт. Например, с типом данных выделяется 1 байт , и она может значения от 0 255, всего 256, что числом вариантов, можно закодировать байтом. Если мы укажем переменной тип , но присвоим значение, например, 1000, работать не .
Переменная целочисленного может принимать какое целое из спектра этого типа. того, является типом.
Таблица 1- целочисленного типа
Тип |
Длина (байт) |
Диапазон |
byte |
1 |
0..255 |
shortint |
1 |
-128..127 |
integer |
2 |
-32768..32767 |
word |
2 |
0..65536 |
longint |
4 |
-2147483648..2147483647 |
К типу относят числа и числа с запятой. Тем менее, мы присвоить вещественному целое значение.
2- Вещественные типы
Тип |
Длина (байт) |
Диапазон |
single |
4 |
1.5*10-45 - 3.4*1038 |
real |
6 |
2.9*10-39 - 1.7*1038 |
double |
8 |
5*10-324 - 1.7*10308 |
extended |
10 |
3.4*10-4932 - 1.1*104932 |
3- Символьный тип
Тип |
Длина (байт) |
Диапазон |
char |
1 |
Любой символ кодировки ASCII |
типа char присвоить любую , цифру, или другой символ кодировки. Также порядковым типом.
char - это один символ, строка - это символов. Строкой быть, к примеру, , состоящее из букв. Также относят к структурным .
Таблица 4- Строковый
Тип |
Длина (байт) |
Диапазон |
string |
256 |
255 символов кодировки ASCII |
Переменная логического может принимать два значения: или false ( или ложь). порядковым типом.
5- Логический тип
Тип |
Длина (байт) |
Диапазон |
boolean |
1 |
true, false |
тип указывает, переменная может значения от значения, до . К примеру, мы , что переменная принимать значения от 5 до 25. можем объявить тип так: a: 5..25;
Организация работы с ссылочного типа.
– это особенные данных. В переменной типов хранится иной переменной, содержит полезные программ данные. показаться, что указателя приведет к издержке памяти и к программ, также факту усложнит и процесс программирования. второстепенные издержки хранение указателей и при работе окупаются всецело. с указателем определена лишь в Паскаль, и в почти всех программирования. В языке С++ используются практически всех программах [8].
В роль указателя меньше, но, же, которые разработчики ПО усваивать базисный работы с ними того, чтоб осознать внутренние обработок и выполнения компьютерных программ.
переменных – это первого байта памяти, которые них отводятся. этого структурного (массива и записи) адресом является первых байтов частей. В Turbo имеется возможность доступа к хоть байтам оперативки ее адресам помощи определенного в system массива , MemW и MemL, информации либо ее сходу ячейки памяти (1, 2 4 байта). Это опасное действие, они исключаются в 32- системе программирования [9].
В индексов в данном используются адреса, в виде, который в DOS: сегменты: относительно начал . Данный типичный записей адресов с тем, что в системах DOS размер памяти на сегменты, которых менее 64 . Для получений адресов из сектор: смещение добавляет к секторам шестнадцатеричные нули ( 4 нуля в двоичной ), а позже складывает со смещениями. методом быть адресовано 1 Мбайт .
Еще есть из методов к оперативки – применять слово absolute время описания . В таком случае будут размещаться по тем в оперативки, которые после absolute. служебное слово настолько же , как и обращаться к при помощи массива. Однако, можно применять и поболее неопасный , позволять совмещение в 2-ух переменных с именованием. В языке имеется особая для получения на переменные ( процедуры) – она как @. Есть эквивалентная ей addr [11]. К примеру, @x addr(х) – адрес х.
Есть и обратная , чтоб получать переменных по адресам, обозначаемых ^. К примеру, р^ – переменная с р.
В ежедневных программах работ с адресом довольно изредка. назначение указателя в том, чтоб механизмы использования в динамических переменных.
В имеется два вида указателя: и нетипизированный. Типизированные – это указатели переменные определенных , к примеру, целый, либо тип . Нетипизированные указатели – адреса первых областей памяти, в могут располагаться дынные вне от их .
Описание этих указателей делается -различному:
var a1: ^; {указатель на целого типа}
a2: ^; {указатель на }
a3 pointer; {нетипизированный }
Подчеркнём, что pointer совместимый с каким иным указателя.
Все располагаются в секторах либо в стеках ( они объявлены в ) и занимают там 4 б. Это дополнительные « траты» памяти. потому обыденную изредка делают и динамическим образом, эту возможность большой совокупности .
Чем больший имеет динамическая , тем наименьшую имеют накладные . К примеру, для в динамической памяти огромного размера 4 байта, которые на указатели, .
Типизированные указатели (ссылаются) на определенных типов. их объявления знак ^, который перед надлежащими данных. К примеру:
massiv = array[1..100] integer;
Var a1 : ^;
a2 : ^massiv;
В данном a1 является ссылкой () на целое , a2 – ссылкой на из 100 целых . Сейчас для к данным по адресу необходимо : a1^, a2^. Другими словами, a1 – адрес, а a1^ – то, по данному размещается.
Для участков динамически памяти (кучи) с расположения там данных употребляют функцию New (a), a – указатель.
После таковых команд выделены блоки нужных размеров ( расположения тех , на которые указатель a), а сам a приобретает значение этого выделенного памяти. К примеру, выполнения команд:
(a1);
New (a2);
будут два непрерывных в куче, 1-ый 2 б (т.к. целые числа 2 б в оперативки), 2-ой – 400 (100 * 4 б для каждых 100 целых чисел).
выполнения данных указатели a1 и a2 получают значения. Потому адресу, на они указывают, расположить конкретное соответственного типа. К ,
a1^ := 52;
a2^[1] := 8;
Если во выполнения процедуры в куче не непрерывных участков подходящего размера, программа окончит с сообщением «Out Memory». Для размеров доступных в динамически распределяемой (куче) необходимо функцию MaxAvail, возвращает размер непрерывного участка в на этот времени.
При динамической памяти процедура Dispose (a), a – указатель. К примеру:
(a1);
Dispose (a2);
После этой команды , которая до была связана с , ворачивается назад в (и быть может применена уже иных сведений). значение указателей меняется, т.е. в нем и остается адрес «несуществующего» (переданного в кучу) блока . Поэтому обращения к после реализации Dispose время времени приводит к .
В языке Паскаль константа Nil – указатель. Значение можно присвоить какому указателю, к :
a2 := nil;
Все реализация этого до вызовов Dispose (a2) приведет к , что указатель a2 сумеет ссылаться на один участков динамической , но сами в памяти остаются, т.е. участок не возвращенным в кучу. плохо по причине, что выполнении серий команд большая динамической памяти занятой, но будет применена.
указатель не с любым определенным данных. При описании употребляют тип Pointer. К : Var a : pointer;
указатель употребляется динамическом размещении , структура и тип могут изменяться в выполнения программ.
выделений памяти обычную функцию (a, size), где a указателем, переменной Pointer, size – выделяемых участков , выражением типа (целочисленным типом). одном обращении к GetMem можно менее 65521 б памяти ( значение типа ) [6].
При освобождении и возврате ее в употребляют обычную FreeMem (a, size), a является указателем, типа Pointer, – размером освобождаемого в памяти, выражением Word.
Константа быть может и при работе с указателем.
Вначале, учете чрезвычайно размеров оперативки, тип употреблялся того, чтоб в программе опять один и тот участок оперативки. В технике это не значительным. , беря во особенность архитектуры типа IBM, применяется для в программах большых данных (превосходящих 64 ), необходимо применять структуры данных.
2. Создание ссылочных в языке программирования
2.1. Основные действия с Паскаля
Из программирования известно, определение типа определяет:
- ограничение допустимых значений;
- представление в ЭВМ;
- допустимых операций данными этого .
Выше в работе определение массива и тип данных – . Над базовыми данных, числовыми символьными, могут определенные операции. также и над выполняются операции, подразумевают операции элементами массива. действие, которое выполнять над целиком, причем при условии, массивы однотипны, – присваивание. Если в объявлены две одного типа, ,
Var
m , n : array [1..21] real ; ,
то переменной n присвоить переменной m ( n := m). При каждому элементу n будет присвоено значение из m. Все остальные над массивами производятся поэлементно.
2.2. массива Паскаля
того чтобы начальные значения () элементов массива, последовательно изменять индекса, начиная с и до последнего, и соответствующий элемент. реализации этих удобно использовать цикл или с фиксированным числом . В этом случае цикла будет переменная, которая индексом массива. элементов могут введены с клавиатуры определены с помощью присваивания.
На форме 13 приведен фрагмента программы массива на Паскаль.(Рис.1)
1- Экранная форма 1 элементов массива в
Очень часто практике массивы случайными числами. прием существенно время заполнения вручную. Автоматическое массивы выполняется с функции random ( N ). экранной форме 14 пример фрагмента заполнения массива числами. (Рис.2)
2- Экранная форма 2 массива случайными
Таким образом, вышесказанного можно вывод о том, элементы массива быть инициализированы способами: вводом с , случайными числами, присваивания. Какому них отдать , зависит от задачи и от разработчика
Глава 3. создания ссылочных в языке программирования
Массив – это объектов, состоящая фиксированного упорядоченного элементов, имеющих и тот же .
Массивы могут одномерными и многомерными (-, трехмерными и т. д.). Примером массивов может список фамилий класса, многомерных - умножения, классный , аттестат зрелости.
, образующие массив, таким образом, каждому элементу номер (индекс), его местоположение в последовательности. Доступ к элементу осуществляется индексирования.
Для массива используется array of ( из) и имеет : array [тип ] of <тип>
индекса – любой номер, определяющий изменения значений .
Описание массива следующим образом:
< типа> = array [ индекса] of < данных>;
mas= [1..m] of integer; { из m целых }
digit = array [0 .. 9] char; {массив символов, имеющих номера от 0 9}
matrix = array [] of string; { 256 строк, пронумерованных с 0 255}
Количество элементов размером массива. элементов определяет массива. Размер и массива указываются его описании, размер может указан либо значением, либо определенной константой. элемента называется . Индексы могут целыми положительными или целыми . Чтобы обратиться к элементу массива, рядом с идентификатором в скобках указать элемента.
Но данные могут организованы в виде (матрицы), где каждой переменной номером строки и столбца. Например, в зрительном зале указанием номера и номером места в ряду. Такие удобно описать двумерный массив. В от одномерного каждому элементу массива соответствует индексов. Первый – это номер , а второй – номер , где расположен массива.
Размер массива задается чисел: M*N, где M – строк, а N – число в таблице.
Пусть двумерный массив , имеющий размер 10*20. массив на Паскаль может описан следующим :
Var
Matr : [1..10,1..20] of integer;
Matr[5,7] – элемент, в 5-ой строке и в 7- столбце.
Любая , переменная, значение или выражения в Паскале характеризуется типом. Тип из этих определяет множество значений, которые иметь объект, а множество допустимых , которые применимы к . Кроме того, определяет и формат представления значения .
Отличительной особенностью является то , что все компоненты суть одного типа (, структурированного); эти можно легко и обеспечить доступ к из них указанием его номера
Цель :
Даны целочисленная размера nx3, числа k, l (1<=k<=n, 1<=l<=n, k ≠1). Преобразовать так , чтобы с исходным номером k следовала за с исходным номером l, порядок следования строк.
Блок :
Решение:
Program ;
Uses Crt;
a: array[1..5,1..3] of ;
i,j,k,l,n,t:integer;
Begin
('Введите число');
(n);
ClrScr;
for i:=1 n do
Begin
j:=1 to 3 do
writeln('Введите :');
readln(a[i,j]);
End;
;
writeln('Исходный ');
for i:=1 to n
Begin
for j:=1 3 do
write(a[i,j]:4);
;
End;
writeln;
('k=');
readln(k);
write('l=');
(l);
if k<l then
for i:=k to l-1
Begin
for j:=1 3 do
Begin
t:=a[i,j];
a[i,j]:=a[i+1,j];
a[i+1,j]:=t;
;
End;
End
Begin
for i:=k l+2 do
Begin
j:=1 to 3 do
t:=a[i,j];
a[i,j]:=a[i-1,j];
a[i-1,j]:=t;
End;
End;
;
writeln('Перестановленный ');
for i:=1 to n
Begin
for j:=1 3 do
write (a[i,j]:4);
;
End;
End.
- с комбинированными типами .
Цель задания:
- навыков в организации /вывода значений типов данных.
- практических навыков задач с использованием .
1.1 ДАННЫЕ - информация, в формализованном виде, обеспечивает возможность хранения, обработки и .
Программы на Паскаль имеют структуру:
1) Блок PROGRAM – имеет , состоящее только латинских букв и . Его присутствие обязательно, но записывать для распознавания нужной среди других .
2) Программный блок, в общем случае 7 разделов:
•раздел модулей (uses);
• описания меток ();
•раздел описания (const);
•раздел типов данных ();
•раздел описания (var);
•раздел процедур и функций;
• описания операторов.
структура программы языке Паскаль :
Рrogram ИМЯ..; { программы}
Uses ...; { описания модулей}
..; {раздел объявления }
Begin {начало части программы}
... {
... операторов}
End. { программы}
2.1 Постановка :
Составить список группы, включающей 25 . Для каждого указать дату , год поступления в , курс, группу, каждого года . Информацию о каждом оформить в программе в записи. Совокупность объединить в массив.
программу, которая ввод полученной , распечатку её в таблицы, а также информации согласно варианту.
Вариант: список студентов среднему балу и его.
Решение:
spisok_grupp;
Crt ;
Const =3;
Const kol=5;
sved=record
:string[25];
datar:[8];
god: integer;
: integer;
ocenki:[1..3,1..5] of integer;
:array[1..25] of ;
End;
Var
: array[1..25] of ;
i,i1,j, s,mesto,n,g:integer;
,t:real;
q:string[25];
ClrScr;
writeln(е количество учеников');
(n);
for i:=1 to n
With spisok[i]
Begin
Writeln (я ',i,' студента');
Readln ();
Writeln('Дата ');
Readln (datar);
('Год поступления');
(god);
Writeln (а');
Readln (gruppa);
s:=0;
i1:=1 to kurs
begin
writeln(и ',i1,' года');
for j:=1 kol do
Writeln (j,' Предмет');
(ocenki[i1,j]);
s:=s+ocenki[i1,j];
;
srball[i]:=s/(kol*);
ClrScr;
End;
('Фамилия':8,'Дата
':16,'Год поступления':18,с':7,'Группа':8);
for i:=1 n do
begin
spisok[i] do (famil:8,datar:16,:18,kurs:7,gruppa:8);
;
writeln;
for g:=1 kurs do
write(g,' год:');
j:=1 to kol
with spisok[i] write(ocenki[g,j]:4);
;
end;
with [i] do writeln(й бал =',srball[i]:6:2);
;
end;
writeln;
('По порядку');
j:=1 to n do
max:=spisok[j].[j];
mesto:=j;
for i:=j n do
if [i].srball[i]<=max
max:=spisok[i].[i];
mesto:=i;
End;
t:=[j].srball[j];
spisok[j].[j]:=spisok[mesto].[mesto];
spisok[].srball[mesto]:=t;
q:=[j].famil;
spisok[j].:=spisok[mesto].;
spisok[mesto].:=q;
with spisok[j] writeln(famil:8,[j]:6:2);
End;
End.
- с файлами.
Цель :
- Изучение файловых .
- Получение практических работы с файлами.
(от англ. , основные значения), упорядоченных и взаимосвязанных , имеющая описание идентификации отдельных .
Язык Турбо предлагает три такого представления:
- файлы,
- текстовые ,
- нетипизированные файлы.
файл – последовательность одного типа.
файл – файлы данных. Текстовые имеют тип .
Нетипизированные файлы – файлы, поддержка осуществляется с максимально скоростью. Введение файлов в систему Паскаль было стремлением повысить программ, участвующих в обмене с внешними данных.
Для с файлами используются функции:
- Assign – , ассоциирующая имя с некоторой переменной, с и идет последующая .
- Reset – функция, уже существующий для чтения него.
- Rewrite – , создающая новый , или перезаписывающая .
- Readln – чтение указанного файла с переходом на строку.
- Writeln – в указанный файл с переходом на строку.
Вообще, рассматривается не как несколько , а как запись (), что значительно работу с файлами.
задача:
Подготовить и организовать ввод в файл. Организовать файла и вывод информации.
Дан f, содержащий различные . Каждая дата – число, месяц и . Год с наименьшим .
Решение:
program ;
uses crt;
f:text;
name,,s,a: string;
s1,min,y:;
begin
clrscr;
('Введите имя для записи :');
readln(name);
;
assign(f,name);
(f);
repeat
write(е дату:');
readln();
writeln(f,txt);
txt='';
close (f);
;
reset (f);
min:= 9999;
not eof(f)
Begin
readln (f,a);
s:=(a,7,4);
val(s,s1,y);
if (s1<) and (s1<>0) then :=s1;
end;
writeln(й год:',min);
(f);
end.
Заключение
считая статических , программист имеет применять в собственной динамические переменные, для которых уже в процессе программы и потом, в них больше необходимости, быть освобождена. Подобные размещаются в иной оперативной памяти . Такая динамически память называется (Heap-областью).
в использовании динамических появляется в последующих :
· программа обязана огромные объемы (свыше 64 Кбайтов);
· обязана обрабатывать , размер памяти хранения которых неизвестен;
· тип данных заблаговременно ;
· программа употребляет структуры данных (, очередь, двунаправленный , дерево, граф и т.п.).
динамических величин разработчику ПО доп возможностей. -1-х, подключение динамической позволяет прирастить обрабатываемых данных. -2-х, если необходимость в -либо данных до конца , то занятую память можно для иной . В-3-х, внедрение динамической памяти позволяет создавать структуры данных переменного размера.
Работа с динамическими величинами связана с внедрением еще 1-го типа данных — ссылочного типа. Величины,которые имеют ссылочный тип, называют указателями.
В рамках работы все поставленные задачи были выполнены, также достигнута цель исследования. Была рассмотрена вся нужная литература. В первой главе была рассмотрена теоретическая часть исследования, базы работы со ссылочным типом данных, во 2-ой главе на примере практических заданий было рассмотрено практическое применение ссылочного типа.
Можно прийти к выводу, что ссылочный тип представляет большущее значение для работы с данными динамической памяти, позволяет организовывать работу всей программы в общем, также при работе с большими массивами информации, что является главной целью программирования в современном мире.
Список использованных источников
- Березин Б. И, Березин С. Б. Начальный курс программирования, 2016.
- Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ./ Предисл. Н. В. Гайского.
- Довгаль К. С., Литвинов Б. Ю., Сбитнев А. И., Персональные ЭВМ: Турбо-Паскаль V6.0, Объектное программирование, Локальные сети. (Учебное пособие се), 2015 - 440 с.
- Иванова Г. С. Основы программирования. Учебник для вузов, 2014.
- Кнут Д. Искусство программирования. Том 1. Основные алгоритмы. – М.: Вильямс, 2013 – 272 с.
- Культин Н.. Программирование в Turbo Pascal и Delphi. BHV 2013
- Лукин С. Н. TurboPascal 7.0. Самоучитель для начинающих, 2014.
- Малыхина М. П. Программирование на языке высокого уровня Turbo Pascal – М.: БХВ-Петербург, 2016. – 544 с.
- Марков А. С., Милов М. П., Пеледов Г. В.: Программное обеспечение ЭВМ. кн.11, Перспективы развития вычислительной техники, в 11 книгах, Спр. пособие / Под ред. Ю. М. Смирнова. – М.: Высшая школа, 2013, 127 с.
- Меженный О. А. Turbo Pascal. Самоучитель. — М.: Вильямс, Диалектика, 2013. – 336 с.
- Меженный О. А. Turbo Pascal: учитель программирования. Диалектива 2015.
- НемнюгинС. А. Turbo Pascal. Программирование на языке высокого уровня.
- Офицеров Д. В., Старых В. А. Программирование в интегрированной среде Турбо-Паскаль: Справ. пособие. – Мн.: Беларусь, 2013, 240 с.
- Перминов О. Н. Программирование на языке Паскаль. – М.: Радио и связь, 2014, 219 с.
- Попов В. Паскаль и Дельфи. Самоучитель, 2013.
- Порублев И. Н., Ставровский А. Б. Алгоритмы и программы – 2012.
- ПотопахинВ. В. Turbo Pascal. Решение сложных задач, 2013.
- Прайс Д. Программирование на языке Паскаль: Практическое руководство. Пер. с англ. – М.: Мир, 2013, 232 с.
- Рапаков Г. Г., Ржеуцкая С. Ю. Программирование на языке Pascal. – М.: БХВ-Петербург, 2014. – 480 с.
- Рапаков Г. Г., Ружецкая С. Ю. Turbo Pascal для студентов и школьников. – СПб.: БХВ-Петербург, 2015. – 352 с.
- Семакин И. Г., А. П. Шестаков Основы программирования, 2001.
- Андреева Т.А.: Программирование на языке Pascal – СПб.: Интернет-университет информационных технологий, Бином. Лаборатор, 2016. – 240 с.
- Фаронов В. В. TurboPascal. – СПб.: БХВ – Петербург, 2014. – С. 143 – 148.
- Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: учебное пособие. – М.: КНОРУС. – 2013. – 322 с.
- Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс. – 2013. – 302 с.
- Шпак Ю. А. Программирование в Turbo Pascal. Переход к Delphi. — СПб: МК-Пресс, 2016. – 416 с.
ПРИЛОЖЕНИЕ 1
Рис.1. Данные динамических структур
Приложение 2
Сортировка элементов массива с помощью дерева
scanf("%s",word);
if(isalpha(word[0]))
root = addtree(root, word);
}while(word[0]!='0'); // условие выхода – ввод символа ‘0’
treeprint(root);
freemem(root);
getchar();
getchar();
return 0;
}
Результат выполнения
- Нотариат и его роль в защите гражданских прав и охраняемых законом интересов (Понятие и значение нотариат в Российской Федерации)
- Понятие и значение договора. (Порядок и понятие заключения договора)
- Понятие и сущность решений в процессе управления
- Построение организационных структур (Теоретические и методические основы формирования организационной структуры управления предприятием)
- Процессы принятия решений в организации
- Менеджмент человеческих ресурсов(Кадровая политика)
- ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ АНАЛИЗА ТЕОРИЙ КОНКУРЕНЦИИ
- Анализ движения денежных средств. Структура движения денежных средств. Взаимосвязь чистой прибыли и движения денежных средствКурсовая работа
- Сравнительный анализ теорий конкуренции (ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ АНАЛИЗА ТЕОРИЙ КОНКУРЕНЦИИ)
- Основные нормативные документы, регулирующие ведение бухгалтерского учета в организациях. Международные стандарты бухгалтерского учета (История появления и распространения МСФО)
- Менеджмент человеческих ресурсов (Понятие человеческих и трудовых ресурсов, их основа)
- Основные направления реформирования местного самоуправления в Российской Федерации (Становление местного самоуправления в российской федерации)