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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


реферат Экономикалы? маманды?тарыны? студенттерне арнал?ан

Информация:

Тип работы: реферат. Добавлен: 18.11.2012. Сдан: 2011. Страниц: 20. Уникальность по antiplagiat.ru: < 30%

Описание (план):


?аза?стан Республикасыны?  білім ж?не ?ылым  министрлігі 

С.Б?йішев  атында?ы А?т?бе университеті 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ЭКОнОМЕТРИКА  п?нінен
Зертханалы? ж?мыстар 

Экономикалы?  маманды?тарыны? студенттеріне арнал?ан
                                                                               
 
 
 
 
 
 
 
 
 
 
 
 

                                                                    ??растыр?ан:ф.-м,-?.к.,доцент Сейлова Р.Д.
 а?а о?ытушы Жубанышева Г.И.
                                                                                           о?ытушы Таванова Н.М. 
 
 
 
 
 
 

А?т?бе,2010

Введение.

Прежде всего, следует напомнить, что изучение языка программирования представляет собой знакомство с формальными  правилами записи алгоритмов для  их последующего выполнения компьютером. Формальность сия проистекает из самих принципов, заложенных в архитектуру вычислительных устройств, и жесткости математической логики. Поэтому, постарайтесь воспринять все довольно строгие правила как неизбежность, настроитьсебя на серьезную, скрупулезную, порой сложную работу. Однако не стоит бояться, расстраиваться и сетовать на судьбу: немного аккуратности, внимания, знания предыдущего материала - и вы уже программист.

 
Основные  понятия.

Как и любой  алгоритм, являющийся, как вы помните, последовательностью инструкций, программа на языке Паскаль состоит из команд (операторов), записанных в определенном порядке и формате.
Команды позволяют  получать, сохранять и обрабатывать данные различных типов (например, целые  числа, символы, строки символов, т.д.). Однако кроме команд в записи программы участвуют еще так называемые "служебные слова". Это и есть элементы формальности, организующие структуру программы. Их не так много, но их значение трудно переоценить. Служебные слова можно использовать только по своему прямому назначению. Переопределять их не разрешается.
Вам уже известно, что основное назначение компьютера - облегчить человеку работу с большими объемами информации, поэтому подавляющее  большинство программ построено  по одному, довольно простому принципу: получение данных из внешнего мира (ввод), обработка их по соответствующему алгоритму, хранение необходимой информации и вывод во внешний (по отношению к компьютеру) мир полученных результатов. Все эти действия реализуются через имеющиеся в языках программирования команды, алгоритмические структуры и структуры данных.

 
Основная  структура программы.

Правила языка  Паскаль предусматривают единую для всех программ форму основной структуры:
Program <Имя программы>; 
<Раздел описаний> 
Begin 
<Тело программы> 
End.

Здесь слова Program, Begin и End являются служебными. Правильное и уместное употребление этих слов является обязательным.
Угловые скобки в формате указывают на то, чтожно изначально, то тело цикла не будет  выполнено ни разу. Если условие  изначально истинно и в теле цикла нет действий, влияющих на истинность этого условия, то тело цикла будет выполняться бесконечное количество раз. Такая ситуация называется "зацикливанием". Прервать зациклившуюся программу может либо оператор (нажав Ctrl+C), либо аварийный останов самой программы, в случае переполнения переменной, деления на ноль и т.п., поэтому использовать структуру цикла следует с осторожностью, хорошо понимая, что многократное выполнение должно когда-нибудь заканчиваться.
На языке Pascal структура цикла "Пока" записывается следующим образом: 
While <условие> Do <оператор>;

Правда, лаконично? По-русски можно прочитать так: "Пока истинно условие, выполнять оператор". Здесь, так же как в формате  условного оператора, подразумевается  выполнение только одного оператора. Если необходимо выполнить несколько действий, то может быть использован составной оператор. Тогда формат оператора принимает такой вид:
While <условие> Do  
Begin

<оператор #1>; 
<оператор #2>; 
<оператор #3>; 
. . .

End;

 
Цикл "ДО"

Этот вид цикла  отличается от предыдущего в основном тем, что проверка условия повторения тела цикла находится не перед ним, а после. Поэтому цикл "До" называют циклом "с постусловием", а "Пока" - "с предусловием".
Обратите также  внимание на то, что новая итерация (повторное выполнение тела цикла) происходит не тогда, когда условие справедливо, а как раз тогда, когда оно ложно. Поэтому цикл и получил свое название (выполнять тело цикла до выполнения соответствующего условия).
Интересно, что  в случае, когда условие цикла  изначально истинно, тело цикла все равно будет выполнено хотя бы один раз. Именно это отличие "до" от "пока" привело к тому, что в программировании они не подменяют друг друга, а используются для решения задач, к которым они более подходят.
Формат цикла  на языке Pascal:
Repeat
<оператор #1>; 
<оператор #2>; 
<оператор #3>; 
. . .

Until <условие>;
Читается так: "Выполнять оператор #1, оператор #2. : до выполнения условия".
Здесь не требуется  использование составного оператора, потому, что сами слова Repeat и Until являются операторными скобками.

 
Цикл "С параметром".

В данном случае параметром будет являться целочисленная  переменная, которая будет изменяться на единицу при каждой итерации цикла. Таким образом, задав начальное  и конечное значения для такой  переменной, можно точно установить количество выполнений тела цикла. Нарисовать блок-схему такой структуры вы сможете сами после некоторых пояснений.
Форматов у  этого вида цикла предусмотрено  два: 
For <И.П.>:=<Н.З.> To <К.З.> Do <оператор>; 
For <И.П.>:=<Н.З.> Downto <К.З.> Do <оператор>;

Здесь И.П. - имя  переменной-параметра, Н.З. - его начальное  значение, К.З. - соответственно конечное значение параметра. В качестве начального и конечного значений
Читается данная структура так: "Для переменной (далее следует ее имя) от начального значения до конечного выполнять оператор (являющийся телом цикла)". Иногда цикл с параметром даже называют "Для" или "For". В первом случае параметр с каждой итерацией увеличивается на единицу, во втором - уменьшается.
Выполняется этот цикл по следующему алгоритму: 
1. переменной-параметру присваивается начальное значение; 
2. выполняется тело цикла; 
3. переменная-параметр автоматически увеличивается на 1 (в первом случае формата); 
4. если параметр превышает конечное значение, то происходит выход из цикла, иначе - переход к пункту 2.

Примечание: при использовании  Downto параметр автоматически уменьшается на 1, а выход из цикла происходит тогда, когда параметр становится меньше конечного значения.
Таким образом, в отличие от первых двух видов  цикла, этот цикл используется тогда, когда известно необходимое количество выполнений тела цикла.
Вообще говоря, цикл "Пока" является универсальным, то есть любая задача, требующая  использования цикла, может быть решена с применением этой структуры. Циклы "До" и "С параметром" созданы для удобства программирования.
Пример.
Найти сумму  квадратов всех натуральных чисел  от 1 до 100.
Решим эту задачу с использованием всех трех видов  циклов.
I. С использованием  цикла "Пока".
Program Ex1
Var  
A : Integer; 
S : Longint; 
Begin

A:=1; S:=0; 
While A<=100 Do 
Begin

S:=S+A*A; 
A:=A+1

End; 
Writeln(S)

End.
II. С использованием  цикла "До".
Program Ex2; 
Var  
A : Integer; 
S : Longint; 
Begin

A:=1; S:=0; 
Repeat

S:=S+A*A; 
A:=A+1

Until A>100; 
Writeln(S)

End.
III. С использованием  цикла "С параметром".
Program Ex3; 
Var  
A : Integer; 
S : Longint; 
Begin

S:=0; 
For A:=1 To 100 Do S:=S+A*A; 
Writeln(S)

End.
Теперь вам  известны все основные алгоритмические  структуры языка Паскаль. Комбинируя их, возможно запрограммировать решение  любой задачи, конечно, если таковое существует. Тем не менее, изучение языка на этом не закачивается, так как для написания хороших программ по утверждению уважаемого Никлауса Вирта (за время моей работы у меня не появилось оснований в этом сомневаться) нужны кроме алгоритмических, еще удобные структуры данных. В рассматриваемом языке таких структур множество, для каждого вида определены свои команды и операции. К их рассмотрению мы и переходим.

 
Строковые операции

До сих пор  мы с вами рассматривали программы, реализующие алгоритмы обработки числовых данных. Однако хоть ЭВМ изначально и были созданы только для этой цели, по мере развития аппаратной части появилась возможность оцифровывать данные других типов, хранить их в памяти машины, перерабатывать, выводить во внешний по отношению к компьютеру мир. Проще всего можно было так поступить с текстовой информацией. Если не ставить перед машиной задачу "понимания" смысла текста, то задача оцифровки сводится к установлению правил замены символов (литер) при вводе в компьютер на их коды и обратной замены при выводе информации на экран или принтер. Такие правила, конечно же, были составлены. Как водится, сначала их было множество (вспомните разнообразие таблиц кодировки), затем весь мир остановился на ASCII.
Все языки программирования высокого уровня имеют средства работы с литерными величинами. Паскаль - не исключение. Как вам уже известно, в стандарте языка описаны два типа переменных для литерных величин. Это - String и Char. Напомню - переменная типа Char может содержать в себе только один единственный символ, тип String предназначен для хранения строковых величин до 255 символов длиною. Кстати, вы знаете не все о типе String. При описании переменной этого типа вы можете сами указать максимальное число символов, которое можно занести в нее. Конечно же, это число не должно превышать 255. Делается это так:
Var  
S : String[30];

Для чего это  нужно?
Дело в том, что при компиляции для каждой переменной отводится свой участок  памяти. Если мы будем выделять для  всех переменных типа String по 256 байт, то это приведет к тому, что при использовании достаточно большого их количества, памяти может и не хватить? Но если в переменной мы собираемся хранить, например, фамилию пользователя, то тридцати символов (тридцати байт) для этого вполне достаточно. Таким образом, экономится память и увеличивается быстродействие программ.
Переменным строкового типа можно присваивать строковые  величины (внутри программы они заключаются  в апострофы), значения выражений, которые  приводят к строковым величинам. Значения можно также вводить с клавиатуры. При этом апострофы не используются. Как вам известно, в числовую переменную нельзя ввести строковую величину. Сделать наоборот - возможно, однако число, находящееся в строковой переменной представляет собой просто последовательность символов (цифр), поэтому в арифметических выражениях участвовать не может.
Также, новым  для вас явится то, что при использовании  строковой переменной, к каждому  ее символу можно обратиться отдельно. Необходимо только знать номер нужного символа от начала строки. Его достаточно поставить после имени переменной типа String в квадратных скобках.
Пример: S[5] - пятый  символ строки S.
С отдельным  символом строки можно производить  все действия, которые можно производить  с любой символьной переменной (ввод, присвоение, вывод на экран, участие в выражениях и т.д.).
Обратите внимание на то, что нумерация символов в  строке начинается с единицы. Внутри квадратных скобок вместо числа может  находиться выражение, результатом  которого является целое число. Главное чтобы символ с таким номером в строке существовал. Но как же узнать, сколько символов в данный момент находится в строковой переменной? Для этого существует специальная функция, которая возвращает длину строковой переменной в символах. Это функция Length. Ее формат: Length(S)
Здесь S - либо строковая величина, либо строковая переменная.
Приведенная далее  программа выводит на экран длину  введенной пользователем строковой  величины.
Program Str1
Var  
S : String; 
Begin

Writeln('Введите  последовательность символов'); 
Readln(S); 
Writeln('Вы ввели строку из ',Length(S), ' символов')

End.
Другой пример: 
Решим задачу: "Введенную строку вывести на экран по одному символу в строке экрана".

Program Str2
Var

S : String; 
I : Byte;

Begin
Writeln('Введите строку'); 
Readln(S); 
For I:=1 to Length(S) do {организуем цикл, начиная с первого символа} 
Writeln(S[I]) {строки, до последнего (номер последнего} 
{совпадает с количеством символов строки S) }

End.
Какие же еще  действия можно выполнять с переменными  строкового типа?
Две строковые  величины можно состыковывать. Эта  операция называется конкатенацией  и обозначается знаком "+".
Например, результатом  выполнения следующих команд: 
R:= 'kadabra'; 
H:= 'abra'; 
S:=H+R; 
в переменной S будет значение 'abrakadabra'.

Для конкатенации результат зависит от порядка  операндов (в отличие от операции сложения). Следует помнить о том, какой максимальной длины может  быть результирующая переменная, так  как в случае превышения значением  выражения числа, указанного после String в описании переменной, "лишние" символы в переменную не попадут.
Строковые величины можно сравнивать между собой. Это  относится также и к строковым  переменным. Но как же компьютер  определяет, какая строка больше:
    та, которая длиннее?
    та, которая содержит больше заглавных букв?
На самом деле такая проверка проходит довольно сложно: компьютер сравнивает сначала первые символы строк. Большим из двух считается  тот, код которого больше (вспомните, что такое код символа). Если равны  первые символы, то так же анализируется следующая пара до тех пор, пока не будет найдено различие. Если начало строк совпадает, а одна из них кончается раньше, то вторая автоматически называется большей.
Код символа  в Паскале можно определить при  помощи функции Ord.
Ее формат: Ord(C), где С - либо непосредственно указанный символ, либо переменная символьного типа, либо один символ строковой переменной. Вообще, функция Ord имеет более глубокий смысл, но об этом - позже. Есть и обратная функция, которая возвращает символ по известному коду. Это функция Chr(N), где N - выражение, приводящее к целому числу в интервале от 0 до 255 (возможные значения кода символа). Очевидно, что Chr(Ord(C))=C, Ord(Chr(N))=N.
Следующая маленькая  программа выводит на экран кодовую  таблицу:
Program Str3
Var 
I : Byte; 
Begin

For I:=32 to 255 do 
Write('VV',I:4, '-',Chr(I))

End.
Цикл в программе  начинается с 32 потому, что символы  с кодами от 0 до 31 являются управляющими и не имеют соответствующего графического представления.
Задача: "Определить, является ли введенная строка "перевертышем". Перевертышем называется такая строка, которая одинаково читается с начала и с конца. Например, "казак" и "потоп" - перевертыши, "канат" - не перевертыш".
Поступим следующим  образом: из введенной строки сформируем другую строку из символов первой, записанных в обратном порядке, затем сравним первую строку со второй; если они окажутся равны, то ответ положительный, иначе - отрицательный. Естественно, предложенный способ решения не является единственно возможным.
Program Str4
Var  
S,B : String; 
I : Byte; 
Begin

Writeln('Введите  строку');  
Readln(S); 
B:=''; {Переменной B присваиваем значение "пустая строка"} 
For I:=1 to Length(S) do 
B:=S[I]+B; {Конкатенация. Символы строки S пристыковываются к} 
{переменной B слева. Самым левым окажется последний.} 
If B=S Then Writeln('Перевертыш') Else Writeln('Не перевертыш')

End.
Число, записанное в строковую переменную, естественно  числом не является, но очень часто  требуется его все же использовать в качестве числа. Для этого нужно  произвести преобразование типа. Перевод строкового представления числа в числовое выполняет в Паскале оператор Val.
Его формат: 
Val(S,X,C);

Здесь S - строка, содержащая число, X - числовая переменная, в которую будет помещен результат, С - переменная целочисленного типа, в которую помещается первого встреченного в S отличного от цифры символа. Если после выполнения оператора Val переменная С имеет значение 0, то это означает, что преобразование типа прошло совершенно успешно и в строке нецифровых символов не встретилось.
Противоположное действие осуществляет оператор Str. Формат оператора: 
Str(X,S)
X - число (либо арифметическое выражение), S - строковая переменная.

В переменную S попадает строковое представление числа X. Это нужно, например, при необходимости  выводить на экран числа в графическом режиме (будет изучено позже), так как стандартные процедуры вывода на экран там работают только со строковыми величинами.
Для иллюстрации  рассмотрим такую задачу: "Найти  сумму цифр введенного натурального числа". Используя только числовые переменные, решить ее можно, но предлагаемое здесь решение, по-моему, проще.
Program Str5
Var

S : String; 
I,X,A,C : Integer;

Begin
Writeln('Введите  натуральное число'); 
Readln(S); {Число вводится в строковую переменную} 
A:=0; 
For I:=1 To Length(S) Do 
Begin

Val(S[I],X,C); {Цифровой символ превращается в число} 
A:=A+X {Цифры суммируются}

End; 
Writeln('Сумма цифр равна ',A)

End.
Теперь рассмотрим еще несколько действий над строками:
    оператор DELETE(S,I,C) из строковой переменной S удаляет C символов, начиная с I-того;
    оператор INSERT(SN,S,I) вставляет подстроку SN в строковую переменную S перед символом с номером I;
    функция COPY(S,I,C) возвращает подстроку строки S из C символов, начиная с символа с номером I;
    функция Pos(SN,S) возвращает номер символа, с которого в строке S начинается подстрока SN (позицию первого вхождения подстроки в строку). Если такой подстроки нет, то возвращается ноль.
Пример их использования:  
"Во введенной строке заменить все вхождения подстроки 'ABC' на подстроки 'KLMNO'".

Program Str6; 
Var

S : String; 
A : Byte;

Begin
Writeln('Введите строку'); 
Readln(S); 
While Pos('ABC',S)<>0 Do 
Begin

A:= Pos('ABC',S); 
Delete(S,A,3); 
Insert('KLMNO',S,A)

End; 
Writeln(S)

End.

 
Определение типов

Как было упомянуто  ранее, в изучаемом языке возможно определять новые типы переменных. После определения этот тип становится доступным для описания переменных, также как и стандартные типы.
Новый тип перед  первым его использованием должен быть описан в соответствующем разделе  описаний. Его заголовок - служебное слово Type.
Type  
<Имя типа> = <Описание типа>;

Есть несколько  способов описания. Иногда говорят  даже о видах типов (как бы это  странно ни звучало).
Итак, первым рассмотрим так называемый перечисляемый тип.
Перечисляемый тип используется для повышения наглядности программ, позволяя записывать в переменные этого типа названия разнообразных объектов, исследуемых программой. Этот тип представляет собой набор идентификаторов, с которыми могут совпадать значения параметров.
Формат описания следующий: <Имя типа> = (<Ид.1>, <Ид.2>,? <Ид.n>);
Далее можно  определить любое число переменных уже описанного типа. Обратите внимание на то, что каждый идентификатор  может участвовать в описании только одного перечисляемого типа.
Этим переменным можно присваивать только значения из списка, определенного при описании типа. Эти значения не являются ни числами, ни строковыми величинами, ни даже величинами логического типа, поэтому они не могут участвовать в арифметических, строковых, логических выражениях, а также не могут быть выведены на экран или принтер. Величины перечисляемого типа можно сравнивать между собой, над их множеством в языке Паскаль определены несколько функций: 
Ord(X) - порядковый номер значения переменной X в списке идентификаторов. 
Succ(X) - следующее значение для величины Х. 
Pred(X) - предыдущее значение данного типа.

Обратите внимание на то, что для функции Ord нумерация среди значений идет, начиная от нуля. Для последнего значения нельзя применять функцию Succ, для первого - Pred.
Переменные различных перечисляемых типов несовместимы друг с другом.
Множество стандартных  порядковых типов в языке Паскаль  на самом деле определены как перечисляемые. Это типы Char, Integer, другие. Достоинства  стандартных порядковых типов лишь в том, что над каждым из них уже определены специфические действия. Например, тип Boolean описан так: 
Type 
Boolean = (False, True);

Единственное  его отличие от перечисляемых  типов, определяемых программистом, состоит  в том, что значения типа Boolean можно  выводить на экран. Можете проверить, Ord(False)=0.
Интересно, что  переменная перечисляемого типа может  быть счетчиком в цикле "с параметром".
Пример:
Program T1
Type 
Colors = (Black, Blue, Green, Cyan, Red, Magenta, Brown, Yellow, White); 
Var 
C1,C2 : Colors; 
Begin

C1:=Green; 
C2:=Red; 
Writeln(Ord(C1), Ord(Succ(C2)))

End.
Во время выполнения на экране появятся числа "2" и "5", что соответствует номерам значений Green и Magenta.
Следующий тип, который можно определить в программе - тип-диапазон.
Здесь не нужно  перечислять все значения этого типа, потому, что возможными для него являются значения поддиапазона уже определенного до него любого порядкового типа (стандартного или описанного ранее перечисляемого типа). Достаточно лишь указать начальную и конечную величину отрезка порядкового типа. Единственное условие: начальное значение не должно превышать конечное.
Формат описания отрезочного типа: 
Type 
<Имя типа>=<Нач.>..<Кон.>;

Примеры: 
Type

Age=0..150; {Целое  число в интервале от 0 до 150} 
Lat='A'.. 'Z'; {Заглавные буквы латинского алфавита} 
Month=(January, February, March, April, May, June, July, August, September, October, November, December); 
Spring=March..May; {Весенние месяцы}

Есть еще одна возможность определить новый тип, о существовании которой можно  было бы и догадаться.
Type 
<Имя типа>=<Имя ранее определенного или стандартного типа>;

Пример: 
Type 
Number=Byte;

 
Массивы

До сих пор  мы рассматривали переменные, которые  имели только одно значение, могли  содержать в себе только одну величину определенного типа. Исключением  являлись лишь строковые переменные, которые представляют собой совокупность данных символьного типа, но и при этом мы говорили о строке, как об отдельной величине.
Вы знаете, что  компьютер предназначен в основном для облегчения работы человека с  большими информационными объемами. Как же, используя только переменные известных вам типов, сохранить в памяти и обработать данные, содержащие десяток, сотню, тысячу чисел или, к примеру, строк? А ведь такие задачи встречаются в любой области знания. Конечно, можно завести столько переменных, сколько данных, можно даже занести в них значения, но только представьте, какой величины будет текст такой программы, сколько времени потребуется для его составления, как много места для возможных ошибок? Естественно, об этом задумывались и авторы языков программирования. Поэтому во всех существующих языках имеются типы переменных, отвечающие за хранение больших массивов данных. В языке Паскаль они так и называются: "массивы".
Массивом будем  называть упорядоченную последовательность данных одного типа, объединенных под одним именем. Кстати, под это определение подходит множество объектов из реального мира: словарь (последовательность слов), мультфильм (последовательность картинок) и т. д. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов). Самой простой является линейная таблица, в которой для точного указания на элемент данных достаточно знания только одного числа (индекса). Мы с вами пока будем заниматься только линейными массивами, так как более сложные структуры строятся на их основе.
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.