Файл: Основы программирования на языке Pascal (Виды языков программирования).pdf
Добавлен: 29.03.2023
Просмотров: 322
Скачиваний: 1
Си-вариант хороший, очень популярен с ним очень легко и удобно работать с документацией, так же можно работать в других отличных от операционной системы Windows. Язык мощный, который основан на функциональном стиле. C до сих пор часто используют в наше время.
C++-Это кросс- платформенный язык он очень мощный, является основным для создания крупномасштабных программ на сегодня. Считается новой парадигмой в среде языков, является объектно-ориентированным.По сравнению от функциональных таких как C.
Бейсик- Очень быстрая разработка графических интерфейсов. В процессе разработки возможность предоставления заказчику части сделанной работы для тестирования и оценки. Малые труда время затраты. Возможность использования сторонних ActiveX компонентов, классов, объектов, дизайнеров. Если писал компоненты, библиотеки не сам, не с нуля, то не известно еще как это все будет работать и крутится, и какие ошибки могут вылезти в дальнейшей эксплуатации программного обеспечения. [20, с.14]
Глава 2. Программы циклической структуры
Циклические структуры – это выполнение одного и того же действия в алгоритме. Часто при составлении программ встречается, то, что нужно повторить какое либо действие. [3, с.36]
Циклом называется повторение последовательности действия. Телом цикла называется часто повторяющееся действие. Применение цикла сокращает количество времени, которое затрачивается на то что бы постоянно составлять одно и то же действие, благодаря чему можно за короткое время выполнить большое количество повторяющихся действий.
Циклы бывают:
- Цикл с параметром
- Цикл с предусловием
- Цикл с постусловием
У каждого из них есть своя блок-схема и оператор алгоритмического языка.
Рис.1.Цикл с параметром, цикл с предусловием, цикл с постусловием
а), б) – циклическая структура “Для каждого”
в) – циклическая структура “Пока”
г) – циклическая структура “До”
Цикл с предусловием – условие выполнения проверяется до шага цикла.
While <условие выполнения> Do <оператор>;
Рис.2. Цикл с предусловием
Пример:
Programtest1;
Varz:Integer;
Begin
z:=10;
Whilez>0 Do
z:=x-3;
WriteLn(z);
End.
Цикл с постусловием – условие выполнения проверяется после шага цикла.
Repeat
<оператор>;
<оператор>;
…
<оператор>;
Until <условие завершения>;
Рис.3. Цикл с постусловием
Пример:
Programtest2;
Varb:Real;
Begin
b:=100;
Repeatb:=b/2;
Untilb<10;
Writeln(b:0:2);
End.
Цикл с параметром – выполняется определенное заранее известное количество раз.
For <имя переменной>:=<нач. значение> To <кон. значение> Do <оператор>;
Рис.4. Циклспараметром
Пример:
Programtest3;
Varj:Integer;
Begin
Forj:=1to5Do
WriteLn(‘*’);
WriteLn;
Цикл с предусловием выполняется до тех пор, пока условие не станет ложным, и продолжает свою работу, если условие истинно.
Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.
Цикл с параметром использует переменную, называемую параметром цикла. Перед исполнением цикла параметру задаётся начальное значение. После исполнения шага цикла значение параметра становиться больше на единицу. Пока параметр не достигнет своего окончательного значения, цикл будет продолжаться. [4]
2.1.Организация циклических структур
Пример организации программы на языке Java:
Программа обработки списка
importjava.io.*
Объекты в классеlist содержат список имен и три открытых
метода, которые называются getnames, sortlist и printnames.
class list
{ final int ListLength = 10;
private String[] names;
public list()
{ names = new String[ListLength]}
public void getnames{}
{ int i;
Datalnput data = new DatalnputStream(System.in);
for(i = 0; i < ListLength; i++)
{ try( names[i] = data.readLine();
catch(IOException e){};}
public void sortnames()
{ int i,j;String pivot;for(i = 1; i < ListLength; i++)
{ pivot = names[i]);j = i - 1;
while((j >= 0) && (pivot.compareTo(names[j]) < 0))
{ names[j+1]=names[j];j--;}
names[j+1] = pivot;}}
public void printnames()
{ int i;for(d = 0; i < ListLength; i++)
System.out.println(names[i]);}}
Создать объекта с именем namelist и обратиться к нему, требованием ввести несколько имен, отсортировать их, а потом вывести отсортированный список на экран.
class sort{ public static void main (String args[])
{ list namelist = new list();
namelist.getnames();
namelist.sortnames();
namelist.printnames(); }}Конецформы
Конецформы
Конецформы
Пример организации программы на языке Си:
/* Программа обработки списка */#include<stdio.h>
#include <string.h>
main()
{
char names[10][9], pivot[9];
inti, j;
/* Ввод имен с клавиатуры */
for(i = 0; i < 10; ++i)
scanf("%s", names[i]);
/* Сортировка списка имен */
for(i = 1; i< 10; ++i)
{ strcpy(pivot,names[i]);
j = i - 1;
while((j>=0) && (strcmp(pivot, names[j]) < 0)
{ strcpy(names[j+1], names[j]); --j;}
strcpy(names[j+1],pivot);}
/* Печать отсортированного списка */
for( i = 0; i < 10; ++i){
printf("%s\n", names[i]);}
Пример организации программы на языке С++:
// Программа обработки списка
#include<iostreain.h>
#include<string.h>
constintListLength = 10;
// Все объекты класса list содержат список имен и три открытых
// метода, которые называются getnames, sortlist и printnames.
class list
{ private:
char names[ListLength][9];
public:
void getnames()
{ int i;
for(i = 0; i< ListLength; *+i)
cin » names[i]; }
void sortlist()
{ int i,j;
char pivot[9];
for(i = 1; i < ListLength; ++i)
{ strcpy(pivot, names[i]);
j = i - 1;
while((j >= 0) && (stremp(pivot, names[j]) < 0))
{ strcpy(names[j+1], names[j]); --j;}
strcpy(names[j+1],pivot); } }
void printnames()
{ int i;
cout « endl;
for(i = 0; i < ListLength; ++i)
cout « names[i] « endl; } }
// Создание объекта с именем namelist и обращение к нему с // требованием ввести несколько имен, отсортировать их, а // затем вывести отсортированный список на экран.voidmain()
{ list namelist;
namelist.getnames();
namelist.sortlist();
namelist.printnames();
Пример организации программы на языке Бейсик:
В языке Basic циклу До соответствует следующая структура программы:
Операторы начальных присваиваний
Тело цикла
IF условие GO ТО 2
Циклу Пока соответствует структура программы:
Операторы начальных присваиваний
IF условие GO ТО 5
Тело цикла
GO TO 2
. . .
Рассмотрим следующую программу
10 P=0
20 PRINT P, P*P
30 Р=Р+1
40 IF P<=10 GОТО 20
(*—знак умножения, <= употребляется вместо
). Когда выполняется программа на экран выводятся числа от 0 до 10 и их квадраты.
Это пример цикла До. Здесь операторы 20, 30 образуют тело цикла. Оператор 20 непосредственно является телом цикла. Наряду с операторами 10 и 40, организующим цикл, относится оператор 30. Оператор 40— оператор условного перехода — осуществляет после каждого продолжения цикла. Оператор 10 осуществляет начальные присваивания и обеспечивает возможность выполнения цикла при первом его прохождении. В цикле — многократно — выполняются операторы 20—40.
Переменная Р используется для организации цикла этой программы, она называется управляющей переменной цикла или параметром цикла. Что бы организовать цикл необходимо знать начальное значение управляющей переменной Рнач, конечное значение управляющей переменной Ркони шаг ее изменения Н. [7]
Значения Рнач, Ркон, Н назовем параметрами цикла. При этом количество повторений цикла определяется по формуле
.
Это значение можно использовать для контроля правильности организации цикла.
2.2. Решение циклических алгоритмов
Очень многие алгоритмы являются циклическими. Обычно люди поручают машине трудную работу, где нужно много считать, и счет производится по некоторым одинаковым правилам. [10, с.36]
Алгоритм – конечный результат определённых правил, приводящий к точному решению поставленной задачи. Процесс составления алгоритмов называется алгоритмизацией. Алгоритмы задаются словесно, таблично, с помощью специальных диаграмм и графически в виде блок-схем. Для графического изображения алгоритмов используются стандартизованные типы блоков, основные из которых приведены в табл. 2.
Оператор цикла с предусловием while. Эти циклы применяются тогда, когда выполнение цикла связано с некоторым логическим условием. Цикл с предусловием имеет две части: условие выполнения цикла и тело цикла.
При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно.
Таблица 2
Основные типы блоков блок-схемы алгоритма
Если условие сразу ложно, то оператор не выполнится ни разу.
Общая форма записи следующая:
while <булево выражение> do
begin
группа операторов
end;
Операторные скобки ставятся тогда, когда требуется отделить определенную группу операторов от программы, которую нужно повторить в цикле. Если в цикле нужно выполнить только один оператор, то операторные скобки не ставят. [6, с.88]
Когда мы работаем с циклом предусловия нужно помнить о том что, значение условия выполнения цикла должно быть выявлено еще до начала цикла; тело цикла выполняется, если условие истинно, после чего повторяется проверка условия. Если условие ложно, то осуществляется выход из цикла; что бы значение условия выполнения цикла не повторялось бесконечно, нужно что бы хоть один из операторов входящий в тело цикла влиял на значение условия выполнения цикла. [12, с.99]
Задача №1. Составить алгоритм нахождения суммы цифр числа.
Решение:
Program cikl_6;
uses crt;
var i,n,k,s : longint;
b : integer;
begin
clrscr;
write('введитечисло ');readln(n);
k:=1;
while n>=1 do
begin
b:=trunc(n) mod 10;
s:=s+b;
n:=trunc(n)div 10;
k:=k+1;
end;
write('s=',s);
readln;
end.
Цикл с постусловием,— в котором проверяется условие после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.
Общая форма записи:
repeat
операторы
until <условие>
В этом цикле находятся некоторые отличия цикла repeat в организации, по сравнению с while: в цикле repeat для выполнения нескольких операторов не следует вставлять эти операторы в операторные скобки begin ... end. Зарезервированные слова repeat и until выполняются как операторные скобки.
Задача №2 Найти все делители натурального числа n.
Решение:
Program ciklp_3;
Uses Crt;
Var n,i:longint;
BEGIN
ClrScr;
Write('Введите число...');
Readln(n);
Write('Делители числа ',n,' : ');
i:=1;
repeat
if n mod i = 0
then Write(i,' ');
Inc(i);
until i>n;
readln;
END.
Цикл с параметром - это тот цикл, когда известно начальное значение переменной, конечное значение и шаг изменения равен 1 или –1, т.е. параметр увеличивается или уменьшается на единицу. Отсюда следует что, цикл с параметром выполняет один или несколько операторов известное заранее определенное число раз.
for <уп> := <выражение 1> to <выражение 2> do
<оператор>;
Задача№3. Вывести на экран цифры от 0 до 9.
Решение:
inti;
for (i = 0; i < 10; i++)
{
System.Console.WriteLine("{0}",i);
}
System.Console.ReadLine();
Глава 3. Работа с массивами
Массив– это набор одногорода элементов, которые имеют порядковый номер, к массивам можно обращаться, задав номер массива. Большое количество задач на языке программирования решаются при помощи массивов. Массив это набор одного типа данных, т.е. если массив объявлен как числовой, то в него нельзя записать строку. [11, с.36]
Массивы делятся на два вида: одномерные и многомерные. Но чаще всего при решение задач используются одномерные и двумерные массивы(матрицы).
Массивом может так же быть и группа студентов. Допустим что, в учебном заведении на первом курсе всего 30 групп, то это будет одномерный массив. Но в учебном заведение 4 курса, получается количество групп равно 120, то это будет размерность массива. В каждой группе определенное количество учащихся, это будет данные массива. Если же группу сначала сформировали из 30 человек, а потом по некоторым данным в нее перевелись еще 2 человека, то последнее выражение будет принадлежать этому значению, а предыдущее просто на просто будет потеряно.