Александр Цветков - Язык программирования PASCAL

Тут можно читать онлайн Александр Цветков - Язык программирования PASCAL - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования PASCAL
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.44/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Цветков - Язык программирования PASCAL краткое содержание

Язык программирования PASCAL - описание и краткое содержание, автор Александр Цветков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования PASCAL - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования PASCAL - читать книгу онлайн бесплатно, автор Александр Цветков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Concat(s1,...,sn)

s1,..., sn - string

string

возвращает строку, являющуюся string результатом слияния строк s1,..., sn.

Результат тот же, что у выражения s1+s2+...+sn

UpCase(c)

c - char

char

возвращает символ c, преобразованный к верхнему регистру

LowCase(c)

c - char

char

возвращает символ c, преобразованный к нижнему регистру

UpperCase(s)

s - string

string

возвращает строку s, преобразованную к верхнему регистру

LowerCase(s)

s - string

string

возвращает строку s, преобразованную к нижнему регистру

Trim(s)

s - string

string

возвращает копию строки s с удаленными лидирующими и заключительными пробелами

- 43 -

Тема №16 Множества символов

В языке Pascal есть очень интересный тип данных множество. Множество представляет собой набор элементов одного порядкового типа. Элементы множества считаются неупорядоченными; каждый элемент может входить во множество не более одного раза. Тип множества описывается следующим образом: set ofбазовый тип;

В качестве базового может быть любой порядковый тип с элементами, для которых функция Ord возвращает значения в диапазоне от 0 до 255. К таким типам, из изученных нами, относятся тип char и byte (а также их подмножества). [16] Другие возможные базовые типы – перечисления (об этом позже). Аналогично массивам можно определить название нового типа в секции type, например:

typeByteSet = set ofbyte; CharSet = set ofchar; Digits = set of'0'..'9'; // подмножества типа char

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

var Vowels : CharSet; // можно было написать vowels : set ofchar; Good : Digits; // можно было написать good : set of'0'..'9';

Vowels :=['A ', 'E ', 'O', 'I', 'U']; // Элементы явно перечислены

Good:=['3'.. '5', '10']; // Диапазон и отдельный элемент

Для проверки принадлежности элемента множеству существует операция in:

var c : char;

ifc in Vowels theninc(n); // Если с – гласная, то увеличить n на 1

На обороте страницы приведена программа, которая вводит текстовую строку с экрана и выводит ее на экран азбукой Морзе, заодно проигрывая ее. В этой программе используется много нового: работа с модулем Sound, массив из строк, индексация массива не целыми числами, а типом char, функция задержки выполнения Sleep, функция перевода буквы в верхний регистр Upcase, работа с множеством.

Задание 16

1. Внимательно изучите текст программы ABCMorse, задайте преподавателю вопросы.

2. Напишите программу, которая вводит текстовую строку, подсчитывает, сколько в ней гласных букв, согласных букв, знаков препинания. (3 балла)

3. Напишите программу, которая вводит из файла 10 текстовых строк и выводит их в другой файл, отсортированными в алфавитном порядке. Используйте алгоритм сортировки занятия №13, и операцию сравнения строк < или >. (5 баллов)

4. Основываясь на программе ABCMorse придумайте интересную задачу на использование текстовых строк и множеств. (доп. баллы)

- 44 -

Файл morse.txt

·-

-···

·--

--·

-··

·

···-

--··

··

·---

-·-

·-··

--

---

·--·

·-·

···

-

··-

··-·

····

-·-·

---·

----

--·-

--·--

-·--

-··-

··-··

··--

·-·-

ProgramABCMorze;

UsesSounds,CRT;

varA : array['А '..'Я '] ofstring [5];

c : char;

f : text;

s : string;

i,j : integer;

dash, dot : integer;

morze : string [5];

begin

// Читаем файл и заполняем массив строк A['А'], A['Б'], A['Я'] азбукой Морзе

assign (f,'morze.txt'); reset (f);

forc:='А' to'Я' doreadln(f,A[c]);

close(f);

// Выводим таблицу на экран

forc:='А' to'Я' dowrite(c,' ',A[c]:5,' ');

// Загружаем звуки

dash:=LoadSound('dash.wav'); dot:=LoadSound('dot.wav');

// Вводим текстовую строку

writeln; write('Введите сообщение '); readln(s);

fori:=1 tolength(s) do// Разбираем ее по символам

ifUpcase (s[i]) in ['А '..'Я '] then// Проверка принадлежности

begin// Если это русская буква (перевод в заглавные – Upcase)

morze:=A[Upcase(s[i])]; // Читаем s[i] элемент массива A в строку morze

forj:=1 toLength(morze) do// Разбираем строку Morze и проигрываем её

begin

write (morze [j]); // Вывод на экран буквы кодом Морзе

ifmorze[j]='-' then

begin

PlaySound(dash); Sleep(SoundLength(dash)); // играем dash

end

else

begin

PlaySound(dot); Sleep(SoundLength(dot)); // играем dot

end;

Sleep(50);

end;

write (' '); Sleep (500); // Пауза между буквами 500 мс

end; // endк внешнему оператору if

end.

- 45 -

Тема №17 Задача о квадратном уравнении

Решение квадратного уравнения выходит за рамки курса математики 7 класса, но мы сочли возможным внести эту классическую задачу программирования в дополнение.

Квадратным уравнением называется уравнение вида

ax 2+ bx + c = 0

На первом этапе его решения определяется так называемый дискриминант:

d = b 2- 4ac

Далее рассматривают три случая

1. d < 0 – в этом случае вещественных решений нет [17] Решение есть только в комплексных числах ;

2. d = 0 – один корень, определяемый формулой -b / 2a;

3. d > 0 – два корня, вычисляемых по формуле x 1,2= (-b ± √d)/2a, где знак «+» соответствует первому корню, а знак «–» – второму корню.

Составим программу для решения этой задачи:

ProgramSquareEquation;

vara, b, c : real; // Коэффициенты уравнения

d : real; // Дискриминант

x1, x2 : real; // Корни уравнения

begin

write ('Введите a, b, c ');

readln (a,b,c); // Ввод исходных данных

d:=b*b-4*a*c; // Вычисление дискриминанта

ifd<0 thenwriteln('Решений нет')

else ifd=0 then begin

x1:=-b/(2*a);

write('x=',x1)

end

else begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

write('x1=',x1,' x2=',x2)

end

end.

Последнюю ветвь elseможно оптимизировать, убрав повторяющиеся вычисления (особенно вычисление квадратного корня)

else begin

d:=sqrt(d); a:=2*a;

x1:=(-b+d)/a;

x2:=(-b-d)/a;

write('x1=',x1,' x2=',x2)

end

- 46 -

01.06.2013

Примечания

1

Бинарные операции – имеющие два операнда, располагающиеся слева и справа от оператора

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Цветков читать все книги автора по порядку

Александр Цветков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Язык программирования PASCAL, автор: Александр Цветков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x