Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Упражнения. 1. Составить программу вывода на печать символов таблицы ASCII, в виде 16 колонок, начиная с элемента #32





1. Составить программу вывода на печать символов таблицы ASCII, в виде 16 колонок, начиная с элемента #32.

 

2. Составить программу с функцией, в результате применения которой все строчные буквы русского алфавита в заданной строке заменяются на прописные (типа UpCase). Исходную стоку и полученный результат вывести на печать.

Исходная строка: «СфСамГТУ, г. Сызрань, ул. Советская, 45»

 

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

Исходная строка: «Обработка символьной информации»

 

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

а) определить текущее значение длин обеих строк; если строки равны по длине, то объединить их в одну строку;

б) сравнить строки по величине; большую строку вывести на печать.

Исходные данные и полученные результаты вывести на печать.

Исходные данные:

1) «Сф СамГТУ,», «г. Сызрань.»

2) «Филиал СамГТУ в Сызрани», «Филиал СамГТУ в Бузулуке»

 

5. Составить программу подсчета слов в введенном тексте (предложении). Примечание: все знаки препинания и пробелы учитывать в качестве разделителей. Исходные данные и полученный результат вывести на печать.

Исходная строка: «Деревня, где скучал Евгений, была прелестный уголок.»

 

6. Составить программу подсчета процентного содержания гласных и согласных букв и разделителей в заданной строке. Исходную строку и результаты вывести на печать. Результаты оформить в виде диаграммы:

Гласные: ░░░░░░░░ n1%

Согласные: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ n2%

Разделители: ██████ (100 – n1 – n2)%

Для построения диаграммы использовать символы #176, 178, 219

Исходная строка: «Зима. Крестьянин, торжествуя, на дровнях обновляет путь»

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какой объем памяти занимает символьная переменная и в каком виде она представлена?

2. Каким образом можно задать символы в выражениях? Приведите примеры.

3. Какие операции можно производить с символьным типом данных? Приведите примеры.

4. Какие встроенные функции модуля System, предназначенные для символьного типа данных, вы знаете? Приведите примеры.

5. Каким образом можно описать в программе символьные переменные? Приведите примеры.

6. Что такое динамическая длина строки?

7. Где содержится информация о текущей длине строки и с помощью какой функции ее можно определить?

8. Расскажите об особенностях операций сравнения строк?

9. Какие операторы ввода и вывода используются для строкового типа данных? Приведите примеры.

10. Для чего предназначены функции Copy и Pos?

11. Поясните действие функций Delete и Insert.

12. В чем заключается операция сцепления и какая встроенная функция ее заменяет?

13. Каким образом описываются множества?

14. Как осуществляется конструирование множества? Приведите примеры.

15. Поясните с приведением примеров сущность операций сравнения множеств.

16. Каким образом осуществляется проверка на принадлежность переменной заданному множеству?

17. Приведите примеры операций объединения, разности и пересечения множеств.

18. К каким группам типов данных относятся символы, строки и множества?

19. В чем заключается отличие строк от массивов символов?


10. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ

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

 

Запись – это структура данных, состоящая из заранее определенного количества компонент, называемых полями.

Общий вид записей:

Type <имя типа> = record <список полей> end;

 

или в развернутой форме:

Type V = record

P1: T1; {V – имя типа,

∙ ∙ ∙ ∙ ∙ ∙ Pi – имя поля,

Pn: Tn; Ti – тип поля}

end;

Например:

Type Birthday = record

date: 1..31;

month: 1..12;

year: word;

end;

Var

a, b: Birthday;

 

Доступ к каждому из полей записи осуществляется с использованием составного имени в виде:

<имя переменной>. <имя поля>.

Например:

a.date:= 20;

a.month:= 11;

a.year:= 1982;

 

Поля могут быть вложены друг в друга, тогда поля в составном имени необходимо описывать последовательно, начиная с внутреннего.

Например, предыдущее определение типа можно дополнить следующим описанием:

Type anketa = record

name: string;

bd: Birthday;

end;

Var c: anketa;

В результате составное имя будет содержать больше полей.

Например:

c.name:= ’Иванов’;

c.bd.date:= 15;

c.bd.month:= 9;

...................

Все значения полей одной переменной типа запись можно присваивать соответствующим полям другой переменной того же типа одним оператором присваивания:

b:= a;

С внутренними полями записи можно выполнять любые операции, применимые к типу этих полей.

Ввод записей осуществляется только по внутренним полям с помощью операторов Read и Readln.

Например:

readln (c.name);

read (c.bd.date);

read (c.bd.month);

readln (c.bd.year);

 

Вывод значений ведется также по внутренним полям с помощью операторов Write и Writeln.

Например:

Writeln (c.name,’ родился ’,c.bd.date,’.’,c.bd.month,’.’,c.bd.year, ’ г.’);

 

Для упрощения доступа к полям записи используется оператор присоединения With, который применяется, когда идет работа с одной конкретной переменной типа record или ее полями.

With N do begin

P1:= W1; {N – имя записи,

∙ ∙ ∙ ∙ ∙ ∙ Pi –поле записи,

Pn:= Wn; Wi – выражение}

end;

 

Например:

With c.bd do begin

date:= 15;

month:= 11;

year:= 1982;

end;

 

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

Список значений полей в определении констант-записей имеет следующий вид: имя поля, двоеточие и константа. Элементы списка отделяются друг от друга точкой с запятой.

 

Например:

Type

anketa = record

fio: string [20];

year: 1970..2000;

end;

Const

first: anketa = (fio: 'Иванов'; year: 1985);

 

Поля должны указываться в той последовательности, в какой они перечислены в объявлении типа.

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

а) по алфавиту наименования товара;

б) по убыванию цены товара;

в) по убыванию числа единиц товара.

Вывести отсортированный список на печать.

 

Исходные данные:

Наименование товара Цена Количество
  Карандаш Ручка Линейка Ластик Тетрадь 1.50 3.40 0.85 1.00 1.20  

program Zapisi;

uses Printer;

const n=5;

type tovar= record t:string[10]; {наименование товара}

p:real; {цена товара}

k:byte; {количество единиц товара}

end;

massiv= array [1..n] of tovar;

var sp:massiv;

x:tovar;

i,j:byte;

 

{процедура вывода списка товаров}

Procedure Output(spis:massiv);

Begin

for i:=1 to n do

writeln(i, '.',spis[i].t:10, ' ',spis[i].p:4:2, ' ',

spis[i].k);

writeln;

end;

 

{процедура сортировки товаров: при ch='t' - по алфавиту,

при ch='p' - по убыванию цены,

при ch='k' - по количеству}

Procedure Sort(ch:char; var spis:massiv);

var y:tovar;

Begin

for i:=1 to n-1 do

for j:=i+1 to n do

Begin

if (ch= 't') and (spis[i].t>spis[j].t) or

(ch= 'p') and (spis[i].p<spis[j].p) or

(ch= 'k') and (spis[i].k<spis[j].k)

Then

Begin

y:=spis[i]; spis[i]:=spis[j]; spis[j]:=y;

end;

end;

end;

BEGIN

{Ввод списка товаров}

for i:=1 to n do

Begin

write('товар',i, ':');readln(sp[i].t);

write('цена',i, ':');readln(sp[i].p);

write('кол-во',i, ':');readln(sp[i].k);

end;

writeln('сортировка по алфавиту');

Sort('t',sp); {Сортировка списка}

Output(sp); {Вывод отсортированного списка}

writeln('сортировка по убыванию цены');

Sort('p',sp); {Сортировка списка}

Output(sp); {Вывод отсортированного списка}

writeln('сортировка по количеству');

Sort('k',sp); {Сортировка списка}

Output(sp); {Вывод отсортированного списка}

readln;

END.

Результаты:

сортировка по алфавиту

1. Карандаш 1.50 12

2. Ластик 1.00 25

3. Линейка 0.85 10

4. Ручка 3.40 20

5. Тетрадь 1.20 30

 

сортировка по убыванию цены

1. Ручка 3.40 20

2. Карандаш 1.50 12

3. Тетрадь 1.20 30

4. Ластик 1.00 25

5. Линейка 0.85 10

 

сортировка по количеству

1. Тетрадь 1.20 30

2. Ластик 1.00 25

3. Ручка 3.40 20

4. Карандаш 1.50 12

5. Линейка 0.85 10

!! Введите текст программы Zapisi в компьютер, осуществите ее компиляцию, запустите на счет и просмотрите результаты.

 

Date: 2016-02-19; view: 522; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию