1976310
столько раз учителя, ученики и родители
посетили официальный сайт проекта «Инфоурок»
за прошедшие 24 часа
Добавить материал и получить бесплатное
свидетельство о публикации
в СМИ №ФС77-60625 от 20.01.2015
Инфоурок Информатика СтатьиИспользование IDE Lazarus при изучении тем «Одномерные массивы» на начальном этапе обучения программированию.

Использование IDE Lazarus при изучении тем «Одномерные массивы» на начальном этапе обучения программированию.

библиотека
материалов





Костюков Геннадий Владимировоч.

(Преподаватель спец дисциплин ГБПОУ «Трубчевский профессионально — педагогический колледж»)









Использование IDE Lazarus при изучении тем «Одномерные массивы» на начальном этапе обучения программированию.




















Введение



При выборе среды программирования при изучении тем(разделов) в школе, СПО таких как Основы алгоритмизации и объектно-ориентированного программирования», возникает вопрос выбора языка и среды программирования, возможности использования среды программирования в учебном процессе с точки зрения соответствия возрастным возможностям учащихся (установка IDE, запуск программ, проектов).

Другая проблема, с которой сталкивается учитель (преподаватель)- это использование в учебном классе операционных сред на основе Linux, а на домашних (личных) компьютерах учащихся установлена ОС MS Windows, что затрудняет выполнение домашних заданий и их проверку.

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

Lazarus - это IDE (Integrated Development Environment) - Интегрированная Среда Разработки программ, использующая компилятор FPC (Free Pascal Compiler), редакторы кода, форм, Инспектор Объектов, отладчик и многие другие инструменты.

Lazarus является проектом Open Source - проектом с открытым исходным кодом. Многие программисты по всему миру принимают участие в его развитии, исходный код Lazarus доступен для изучения и модификации. Lazarus имеет поддержку множества языков, в том числе и русского, что выгодно отличает его от других IDE.

В данной статье читателям предлагаются коды программ по теме(разделу) «Одномерные массивы» реализованные в трех средах Алгоритмический язык, язык программирования Pascal(данный код может быть реализован в любой консольной системе программирования PASCAL) и в IDE LAZARUS

Для реализации кода в консольном варианте IDE LAZARUS Выполнить следующую инструкцию:

1. Запустить IDE LAZARUS.

2. Задать параметры проекта: Файл → Создать → Программа → Ok

hello_html_2ca15467.png













Рисунок 1- Создание проекта (Консольная прорамма на Free Pascal)

Полученный код сохранить в отдельную папку.

program Project1;


{$mode objfpc}{$H+}


uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Classes

{ you can add units after this };


begin

end.

Не удаляя блок описания (выделен курсивом) ввести код алгоритма.

Например:

var x,y:real;

begin

x:=3;

y:=x+1;

writeln (‘y=’,y);

readln;

end.

Исполнение кода в ОС MS WINDOWS выполняется : Запуск → Запустить( или F9). Будет создан исполняемый файл в папке проекта и запущена консоль windows.

Команда readln в конце программы не дает операционной системе MS Windows закрыть консоль после исполнения кода. Повторно программу можно запустить из IDE LAZARUS или запустив исполняемый файл из папки проекта.

Работа в OC Linux выполняется аналогично OC Windows в запуске программы.

Для исполнения программ необходимо запустить консоль LINUX, желательно запустить файловый менеджер Midnight Commander, войти в папку проекта и запустить созданный про компиляции файл.

Код графической среды создается автоматически при запуске IDE LAZARUS. После открытия предложенный код необходимо сохранить в отдельной папке проекта. Запуск выполняется аналогично консольному варианту.




Основные определения



Массив является набором переменных одного типа, объединенных одним именем.

Массивы бывают:

  • одномерные, которые можно представить в форме одномерной таблицы;

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

Массив состоит из пронумерованной последовательности элементов. Номера в этой последовательности называются индексами. Каждый из этих элементов является переменной, то есть обладает именем и значением, и поэтому массив можно назвать переменной с индексом.

Массив обозначается: ИмяМассива (Индекс).

Массивы могут быть различных типов: числовые, строковые и т. д. Например, одномерный строковый массив A(I), содержащий буквы русского алфавита, можно представить в виде следующей таблицы:


Индексами являются целыми числами (в данном случае от 1 до 33). Обращение к элементу массива производится по имени элемента, состоящему из имени массива и значения индекса, например A(5). Каждый элемент массива может принимать собственное значение. Так, значением элемента массива А(5) является строка «д».

Пример программы массива:

1) На алгоритмическом языке:

алг мас (вещ таб А[1:5], цел I)

  1. На языке программирования Pascal:

A: ARRAY [1..5] of Real;


Организация одномерных массивов



Одномерные массивы в PASCAL объявляются с помощью описаний вида:

ARRAY [тип индексов] OF тип компонент

где тип индексов – любой скалярный тип, кроме вещественного;

тип компонент – любой.

Пример программы одномерного массива:

1) На алгоритмическом языке:

алг мас (вещ таб А[1:5], цел I)

  1. На языке программирования Pascal:

A: ARRAY [1..5] of Real;



Ввод данных в одномерный массив.



Pascal

Дhello_html_m7f984f84.pngля начала работы с массивом необходимо его заполнить, то есть присвоить элементам массива определенные значения.

Пример заполнения одномерного массива С(I) :

1) На алгоритмическом языке:

алг мас (вещ таб С[1:4])

арг С

рез С

нач цел I

кон

2) На языке программирования Pascal:

Program mas;

Var c:ARRAY[1..4] of Real;

I : Integer;

Begin

For I:=1 to 4 do begin

Writeln('ячейка - ', I);

Readln (C[I]);

End;

Writeln('вывод данных');

For I:=1 to 4 do begin

Writeln('ячейка - ', I);

Writeln(C[I]);

End;

End.

Lazarus

При работе с массивами ввод и вывод информации на экран возможно организовывать с помощью компонента memo.

Пример программы ввода данных в одномерный массив A: Array[1..5] of real:

Создаем форму и размещаем на нее следующие компоненты:

hello_html_15ae0fcd.png

Рисунок 2-Размещение компонентов

Для компонента Memo надпись удаляется в свойстве Lines. А для кнопки Button надпись изменяется в свойстве Caption.

Затем необходимо создать событие для кнопки Button1, щелкая по ней двойным щелчком, и прописать:

var

Form1: TForm1;

a: array[1..5] of real;

i, cod :integer;

b: real;

c: string;

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to 5 do begin

Val (memo1.Lines[I],b, cod);

a[I]:=b;

end;

end;

Для вывода информации мы устанавливаем такие же компоненты и наша форма будет иметь вид:

hello_html_314e6ca9.png

Рисунок 3- Полный вариант размещение компонентов

Затем необходимо создать событие для кнопки Button2, щелкая по ней двойным щелчком, и прописать:

procedure TForm1.Button2Click(Sender: TObject);

begin

For I:=1 to 5 do begin

str(a[I]:12:2,c);

memo2.Lines.Add(c);

end;

end;

Итоговый результат: запускаем программу, вводим данные, нажимаем кнопку «Ввод», затем нажимаем кнопку «Вывод» и получаем результат:

hello_html_f136cbe.png

Рисунок 4 -Результат исполнения кода «Ввод данных»

Для закрытия формы создается событие для кнопки Button3, щелчком по ней дважды, и прописывается:

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Close;

end;






Суммирование данных массива


Основным видом операции в массиве есть суммирование.

Пример программы на FreePascal суммирования данных массивфа A[1..5]:

1) На алгоритмическом языке:

алг сум (вещ таб А[1:5], вещ S, S2)

арг А

рез S

нач вещ I

S:=0

Для I от 1 до 5

нц

S:=S+A[I]

кц

S2:=S

кон

  1. На языке программирования Pascal блок суммы записывается:

Program FUN1;

Var A: ARRAY [1..5] of Real;

S: REAL;

Begin

S:=0;

For I:=1 to 5 do begin

S:=S+A[I];

End;

Writeln ('S = ' , S);

End.

Пример программы произведения в одномерном массиве A[1..5]:

1) На алгоритмическом языке:

алг прз (вещ таб А[1:5], вещ S, S2)

арг А

рез S

нач вещ I

S:=0

Для I от 1 до 5

нц

S:=S*A[I]

кц

S2:=S

кон

  1. На языке программирования Pascal блок суммы произведения:

Program FUN1;

Var A: ARRAY [1..5] of Real;

S: REAL;

Begin

S:=0;

For I:=1 to 5 do begin

S:=S*A[I];

End;

Writeln ('S = ' , S);

End.

Пример программы на LAZARUS суммирования данных массива A[1..5]:

Создаем форму с компонентами необходимыми для ввода и вывода данных:

hello_html_314e6ca9.png

Рисунок 5 -Подготовка формы

Затем необходимо создать событие для кнопки Button1, щелкая по ней двойным щелчком, и прописать блок ввода данных и блок суммы:

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to 5 do begin {ввод данных}

Val(memo1.Lines[I],b, cod);

a[I]:=b;

end;

s:=0; {сумма}

for I:=1 to 5 do begin

s:=s+a[I];

end;

end;

Вывод данных осуществляется по событию кнопки Button2, по которой прописывается:

procedure TForm1.Button2Click(Sender: TObject);

begin

For I:=1 to 5 do begin {вывод введенных данных}

str(a[I]:12:2,c);

memo2.Lines.Add(c);

end;

str( s:12:2,c); {вывод суммы}

memo2.Lines.Add(c);

end;

При запуске мы получим:

hello_html_1368b1cf.png

Рисунок 6 -Результат исполнения кода «Ввод данных»

Поиск данных в одномерном массиве


Поиск обычно реализуется в форме поиска элемента массива, значение которого совпадает с заданием, а подсчет запускается если значение ячейки соответствует искомому значению (k:=k+1, т.е. значение k увеличивается на 1).

Рассмотрим на примере поиска и подсчета значения = 2 в массиве A[1..5]:

1) На алгоритмическом языке:

алг подсчет (вещ таб А[1:5], цел N, k1)

арг A

рез N,k1

нач цел I, k

k:=0

для I от 1 до 5

нц

если A[I] = min

то k:=k+1

N:=I

все

кц

k1:=k

кон

  1. На языке программирования Pascal блок поиска и подсчета значения = 2:

Program min;

Var A: ARRAY[1..5] of Integer;

I, k: Integer;

Begin

K:=0;

For I:=1 to 5 do begin

If A[I]=2 to then begin

k:=k+1;

Writeln ('двойка в ячейки - ', I);

End;

End;

If k=0 then Writeln ('двоек нет' );

If k<>0 then Writeln ('двоек - ', k );

End.



Lazarus

Пример программы поиска и подсчета чисел = 2 в массиве A[1..5]:

Создаем форму с компонентами необходимыми для ввода и вывода данных:

hello_html_314e6ca9.png

Рисунок 7 -Подготвка формы для реализации кода «Поиск данных»

Затем необходимо создать событие для кнопки Button1, щелкая по ней двойным щелчком, и прописать блок ввода данных и блок поиска числа:

var

Form1: TForm1;

a:array[1..5] of real;

i,cod:integer;

k,s,b:real;

c:string;

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to 5 do begin

Val(memo1.Lines[I],b,cod);

a[I]:=b;

end;

k:=0; { блок поиска}

for I:=1 to 5 do begin

if a[I]=2 then k:=k+1;

end;

end;

Вывод данных осуществляется по событию кнопки Button2, по которой прописывается:

procedure TForm1.Button2Click(Sender: TObject);

begin

For I:=1 to 5 do begin

str(a[I]:12:2,c);

memo2.Lines.Add(c);

end;

str(k:12:0,c); { вывод поиска}

If k=0 then memo2.Lines.Add( 'двоек нет');

if k<>0 then memo2.Lines.Add( 'двоек -');

memo2.Lines.Add(c);

end;

Если в введенной информации нет искомого числа, то при запуске мы получим:

hello_html_m7d645bba.png

Рисунок 8 -Результат исполнения кода «Поиск и подсчет данных» при отсутствии значений

Если в введенной информации есть искомое число, то при запуске мы получим:

hello_html_m3762773f.png

Рисунок 9 -Результат исполнения кода «Поиск и подсчет данных» при наличии значений

Поиск MIN, MAX значений массивов


В массивах часто необходимо найти минимальное или максимальное значение.

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

Если при замене значения запоминать и номер ячейки ( N:=I ), то можно определить в какой ячейки находится минимальное значение.

Рассмотрим на примере поиск минимального значения в массиве A[1..5] с запоминанием ячейки:

1) На алгоритмическом языке:

алг мин (вещ таб А[1:5], вещ min1, вещ N1)

арг A

рез min1,N1

нач вещ min, цел N, I

min:=A[1]

для I от 1 до 5

нц

если A[I]< min

то min:= A[I]

N:=i

все

кц

min1:=min

N1:=n

кон

  1. На языке программирования Pascal блок поиска минимального значения:

Program min;

Var A: ARRAY[1..5] of Integer;

I, min: Integer;

Begin

min:=A[1];

For I:=2 to 5 do begin

If A[I]

End;

Writeln ('min = ', min);

End.

Рассмотрим на примере поиск максимального значения в массиве A[1..5] с запоминанием ячейки:

1) На алгоритмическом языке:

алг мин (вещ таб А[1:5], вещ min1, вещ N1)

арг A

рез min1,N1

нач вещ max, цел N, I

max:=A[1]

для I от 1 до 5

нц

если A[I]> min

то min:= A[I]

N:=i

все

кц

max1:=max

N1:=n

кон

  1. На языке программирования Pascal блок поиска максимального значения:

Program max;

Var A: ARRAY[1..5] of Integer;

I, max: Integer;

Begin

max:=A[1];

For I:=2 to 5 do begin

If A[I] >max Then max:=A[I];

End;

Writeln ('max = ', max);

End.



Lazarus

Пример поиска минимального значения в массиве A[1..5]:

Создаем форму с компонентами необходимыми для ввода и вывода данных:

hello_html_314e6ca9.png

Рисунок 10 -Подготвка формы для реализации кода «Поиск MIN, MAX значений массивов»


Затем необходимо создать событие для кнопки Button1, щелкая по ней двойным щелчком, и прописать блок ввода данных и блок поиска минимального значения:

var

Form1: TForm1;

a:array[1..5] of real;

i,cod:integer;

min,s,b:real;

c:string;

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to 5 do begin {ввод данных}

Val(memo1.Lines[I],b,cod);

a[I]:=b;

end;

Min:=A[1]; {поиск минимального значения}

for I:=2 to 5 do begin

if a[I]

end;

end;

Вывод данных осуществляется по событию кнопки Button2, по которой прописывается:

For I:=1 to 5 do begiт

str(a[I]:12:2,c);

memo2.Lines.Add(c);

end;

str( min:12:2,c); {вывод минимального значения}

memo2.Lines.Add( 'минимальное значение');

memo2.Lines.Add(c);

При запуске мы получим:

hello_html_7bb93539.png

Рисунок 11 -Результат исполнения кода «Поиск MIN, MAX значений массивов»

Сортировка данных массива


Сортировка массива заключается в том, что бы поставить элементы в заданном порядке.

Рассмотрим на примере: требуется произвести перестановку значений так, чтобы они расположились по возрастанию. Решать задачу будем с помощью метода замены: пусть имеется некий массив А [1..5]. Первоначально из всего списка необходимо найти самое маленькое число. Затем, методом замены, мы его должны поставить на первое место, а что было в первой ячейки поставить в ячейку найденного числа с помощью дополнительной ячейки. И так далее со второй ячейки по последнюю, и так до конца.

Пример программы сортировки в одномерном массиве A[1..5]:

1) На алгоритмическом языке:

алг сормас (вещ таб А[1:5] )

арг A

рез A

нач цел I,J,N, вещ Dop, min

Для J от 1 до 4

нц

N:=J

Min:=A[I]

Для I от J до 5

нц

если A[I]то min:=A[I]

N:=I

все

кц

Dop:=A[J]

A[J]:=A[N]

N[N]:=dop

кц

кон

  1. Алгоритм сортировки на языке программирования Pascal выглядит следующим образом:

Program sor;

Var A: ARRAY[1..5] of Integer;

I, min, N: Integer;

Begin

For J:=1 to 4 do begin

N:=J;

Min:=A[J];

For I:= J to 5 do begin

If A[I]

min:=A[I];

N:=I;

End;

End;

DOP: = A[J];

A[J]: = A[N];

A[N]:=DOP;

End;

End.











Курс профессиональной переподготовки
Учитель информатики
Курс профессиональной переподготовки
Учитель математики и информатики
Найдите материал к любому уроку,
указав свой предмет (категорию), класс, учебник и тему:
также Вы можете выбрать тип материала:
Общая информация

Вам будут интересны эти курсы:

Курс повышения квалификации «Информационные технологии в деятельности учителя физики»
Курс повышения квалификации «Методика преподавания информатики в начальных классах»
Курс повышения квалификации «Внедрение системы компьютерной математики в процесс обучения математике в старших классах в рамках реализации ФГОС»
Курс профессиональной переподготовки «Информатика: теория и методика преподавания в образовательной организации»
Курс повышения квалификации «Сетевые и дистанционные (электронные) формы обучения в условиях реализации ФГОС по ТОП-50»
Курс профессиональной переподготовки «Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации»
Курс повышения квалификации «Использование компьютерных технологий в процессе обучения в условиях реализации ФГОС»
Курс повышения квалификации «Специфика преподавания информатики в начальных классах с учетом ФГОС НОО»
Курс повышения квалификации «Применение MS Word, Excel в финансовых расчетах»
Курс профессиональной переподготовки «Управление в сфере информационных технологий в образовательной организации»
Курс профессиональной переподготовки «Теория и методика обучения информатике в начальной школе»
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.