русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы в Паскале. Основные алгоритмы обработки одномерных массивов.


Дата добавления: 2014-12-02; просмотров: 1679; Нарушение авторских прав


Массив – мн-во однотипных элементов. Каждый элемент имеет целочисленный порядковый номер, называемый индексом. Индексы записываются в квадратных скобках через запятую. Одномерные – каждый элемент массива получает два индекса. Многомерные – каждый элемент получает более 2-х индексов. Простой массив является одномерным. Он представляет собой линейную структуру. Способы описания: 1.простое (массив описывается в разделе описания переменных var <имя массива>: array [<нижняя граница индекса .. верхняя граница индекса>] of <тип массива> Напр-р: описание массива температур var T: array [1..12] of real. 2.определение типа (последовательное): а)описание типа массива; б)описание переменной массива. Type vector = array [1..31] of real; Var t:vector; Type index = 1..31;vector = array[index] of real; Var t:vector;r:index; Обработка массивов. 1.Ввод-вывод: Паскаль работает с массивами поэлементно. Const lim = 50; nmax = 100; Type raw = array [-lim..lim] of real; Var x,y: raw; Ввод одномерных массивов: write (‘введите кол-во элементов’); readln (n); write (‘введите элементы’); for i:=1 to n do read (x[i]); for i:=1 to n do begin write (x[i]:8:3); if i mod 5 = 0 then writeln; end; 2.Вычисление суммы элементов: s:=0;

for i:=1 to n do s:=s+a[i];

s:= s/n;

3.Номер первого отрицат: i:=1;

while a[i]>=0 do i:=i+1;

writeln (i);

После выполнения этого цикла мы получаем новое первое отрицательное. В массиве отрицат. элементов нет. 4.Наибольший (наименьший): max:=a[1];

For i:=2 to n do

If a[i]>max then max:=a[i]; 5.Перестановка двух элементов: t:=a[k]; a[k]:=a[l]; a[l]:=t; 6.Циклическая перестановка элементов: было 1 2 3 4 5 6 стало 2 3 4 5 6 1 – циклическая перестановка на 1 позицию влево. t:=a[1];

For i:=2 to n do a[i-1]:=a[i]; a[n]:=t; 7.Вычисление полинома заданной степени: Pn(x) = a0xn + a1xn-1 +…+ an-1x + an ((a0x + a1)x + a2)+…+an-1)x + an



p:=a[0] for i:=1 to n do p:=p*x + a[i]; 8.Сортировка выбором:

For i := 1 to n-1 do


begin

min:=a[i]; imin:=i;

for k := i+1 to n do

if min > a[k] then

begin

min:=a[k];

imin:=k;

end;

tmp:=a[i];

a[i]:=a[imin];

a[imin]:=tmp

end;


tmp – вспомогательная переменная, используемая для обмена значениями между крайним левым элементом массива и элементом с наименьшим значением.

 

15.Ввод и вывод массивов через файлы. Пример – вывод в файл двух матриц рядом.

Для того, чтобы программа могла работать с файлом данных, в ней надо объявить специальную, файловую переменную – переменную типа text. Её описание имеет вид: var имя переменной : text;

Переменная типа text – текстовый файл. Он представляет собой последовательность символов, разбитую на строки произвольной длины. Перед обращением к файлу необходимо его открыть. Для этого предусмотрены следующие 2 процедуры: reset – открывает существующий файл для чтения; rewrite – открывает файл для записи. Чтение данных из файла производится с помощью операторов read, readln, а запись в файл – посредством операторов write, writeln. Если файл, предназначенный для записи к моменту открытия уже существовал, то вся информация в нём будет стерта. Организацию связи с конкретным устройством выполняет оператор назначения вида assign. Оператор assign должен предшествовать операторам открытия файлов. К моменту обращения к reset вводной файл должен существовать на внешнем носителе. Оператор rewrite создаёт новый файл, если файл с указанным именем не был создан ранее. После завершения работы файл следует закрыть, и делает это оператор close.

 

Подпрограмма – функция. Пример: возведение вещественного числа в целочисленную степень.

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

Описание функции:

Function<имя>(<список локальных переменных>):<тип результата>;

var <описание локальных переменных>;

begin <операторы>;

<имя функции>:=<результатное значение>;

End.

В теле функции:

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

Обращение к функции осуществляется с помощью указателя:

<Результат>: = <имя функции> (список фактических параметров);

Фактические параметры должны быть согласованы с формальными:

1. По количеству

2. По порядку следования

3. По типу

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


program Z;

var

m,st:real;

n:integer;

function pow(a:real;x:integer):real;

var

t:real;

i:integer;

begin

t:=a;

for i:=1 to x-1 do

t:=t*a;

pow:=t;

end;

begin

writeln('введите основание:');

readln(m);

writeln('введите показатель:');

readln(n);

st:=pow(m,n);

writeln('результат:',st);

end.


 

Подпрограмма-процедура. Пример – решение треугольной СЛАУ.

Нисходящее программирование

Вызов подпрограммы

Подпрограмма - это отдельная функционально независимая часть программы.

1) описание подпрограммы

2) обращение к подпрограмме

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

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

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

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

Procedure <имя процедуры>(список формальных параметров : их тип);

Var (локальные переменные)

begin

<раздел операторов>

end; {procedure}

Процедура вызывается по имени:

<имя процедуры> (фактические параметры);

- в отличие от функции, не надо присваивать результат (power:=res;)

Например:

Procedure express (a, b, c : real; var x, y:real);

Var

z : real;

begin

z:=a+ b+ c;

x:=sqr(z);

y:=sqrt(z);

end ; {procedure}

Эту процедуру можно вызвать следующим образом:

Express (7.6, 6.8, 9.5, x1, x2);

 



<== предыдущая лекция | следующая лекция ==>
Циклические алгоритмы. Оператор цикла с постусловием | Решение треугольной СЛАУ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.009 сек.