Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Основные теоретические сведения. Приступая к решению задач этого раздела, следует вспомнить, что:




Приступая к решению задач этого раздела, следует вспомнить, что:

- каждому символу соответствует число — код символа;

- Тип STRING (строка) в Паскале похож на одномерный массив символов ARRAY[0..N] OF CHAR, однако, в отличие от массива, количество символов в строке-переменной может меняться только от 0 до 255. В Паскале разрешается не указывать длину строки N, в этом случае она принимается максимально возможной, а именно N=255.

 

Над строками определены две операции:

1. Операция сцепления (+) применяется для сцепления нескольких строк в одну, например:

SumStr:= 'Borland' + 'Pascal' + '7.0'

2. Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строк слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией.

Например, выражение

' mS-DOS' < 'MS-Dos'

'123' < '2 '

'стол' < ' столик'

 

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

Стандартные функции для обработки строк:

¾ length(S:string):byte – возвращает текущую длину строки S.

¾ concat(S1,S2,..SN:string):string – возвращает сцепление строк S1...SN.

¾ copy(S:string; Start, Len:integer):string – возвращает подстроку S длиной Len, начинающуюся с позиции Start.

¾ delete(var S:string; Start,Len:integer) удаляет в S подстроку длиной Len, начинающуюся с позиции Start.

¾ insert(var S:string; Subs:string; Start:integer) вставляет в S подстроку Subs, начиная с позиции Start.

¾ pos(Subs,S:string):byte ищет первое вхождение подстроки Subs в строку S и возвращает номер символа S, с которого это вхождение начинается. Нуль, если нет ни одного вхождения.

¾ str(X; var S:string) преобразует число X в строку S.

¾ val(S:string; var X; var E:integer) преобразует строку цифр S в значение числовой переменной X, E – код возникшей при преобразовании ошибки.

Примеры решения задач

Задача 1. Дан текст. Найти в нем количество буквосочетаний 'st'.

Система тестов:

Значение переменной st Результаты
  st ghhgst stjkj  
  sthghjghghghst  

 

Решение задачи:

Program Kolichestvo_ST;

var

str: string;

counter, I: integer;

begin

repeat {Ввод непустой строки}

writeln ('Введите строку');

readln(Str)

until length(Str)<>0;

counter:=0;

for I:=1 to length(str)-1 do {или if str[i]+str[i+1]=’st’}

if (str[i]=’s’) and (str[i+1]=’t’) then

inc(counter);

writeln(' counter = ', counter);

readln;

end.

Задача 2. Дан текст из цифр и строчных латинских букв. Определить сколько гласных (a, e, i, o, u, y) и сколько согласных букв в этом тексте.

Система тестов:

Значение переменной st Результаты
  123 erty asd гласных – 3 согласных – 4
  sdfdg3 43 3rtg 23 гласных – 0 согласных – 8

Решение задачи:

Program Glasnie_Soglasnie;

const

gl=[' I', 'o', 'u', 'a', 'e', 'y'];

Digit=[' ', '0', '1', '2', '3', '4', '5', ' 6', '7', '8', '9'];

var

st: string;

gl_count, dig_count, i: integer;

begin

writeln ('Введите строку');

readln(st);

for I:=1 to length(st) do

begin

if st[i] in gl then

inc(gl_count);

if st[i] in digit then

inc(dig_count);

end;

writeln('glasn= ',gl_count');

writeln(‘soglasn= ', length(st)- gl_count - dig_count);

readln;

end.

 

Задача 3. Дан текст, В тексте заменить одно заданное слово на другое.

Система тестов:

Значение Text st1 st2 Результаты
         
  I go to school. school shop I go to shop..

Решение задачи:

Program Change_St1_to_St2;

var

text, st1, st2: string;

p, i: integer;

begin

Writeln(' Введите текст');

readln(text);

Writeln(' Введите слово которое следует заменить');

readln(st1);

Writeln(' Введите слово на которое следует заменить');

readln(st2);

p:=Pos(st1,text);

while p > 0 do

begin

Delete(text,P,length(st1));

Insert(st2, text,P);

p:=Pos(st1,text);

end;

writeln(text);

readln;

end.

Задания для самостоятельного выполнения

1. Дан текст. Найти в нем удвоенные буквы.

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

3. Дан текст. Напечатать текст в обратном порядке.

4. Дан текст. Найти в нем количество слов.

5. Дан текст. Найти количество слов, заканчивающихся буквосочетанием 'kk'.

6. Дан текст. Заменить все гласные на символ ' * '.

7. Дан текст. Найти количество слов 'krokodil'.

8. Дан текст. Утроить все символы в тексте.

9. Дан текст. Удалить все гласные в тексте.

10. Дан текст. Удалить в тексте лишние пробелы между словами, оставив по одному.

11. Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом.

12. Найти самое длинное и самое короткое слово в заданном тексте.

13. Дан текст. Удалить каждую вторую букву.

14. Дан текст из стpочных латинских букв. Напечатать:

а) все буквы, входящие в текст не менее двух pаз;

б) все буквы, входящие в текст по одному pазу.

15. Дан текст. Вывести текст по две буквы в столбик.

16. Дана строка символов, состоящая слов, разделенных пробелами. Напечатать упорядоченные по алфавиту слова из строки символов.

17. Написать программу, которая преобразует введенное пользователем десятичное число в шестнадцатеричное.

18. Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным шестнадцатеричным числом и преобразует его в двоичное.

19. Дан текст. Из заданного предложения удалить все слова, которые уже встречались в нем ранее.

20. Удалить из слов с четной длиной все гласные, а из слов с нечетной длиной – все согласные.

21. Дана строка из слов, содержащих буквы и цифры. Слова разделены пробелами. Удалить из каждого слова цифры. Вывести полученные слова, упорядочив их по убыванию количества входивших в них цифр.


Лабораторная работа № 9. Функции и процедуры

Цель работы: Приобретение навыков в построении и использовании процедур и функций.

 

Задачи:

¾ понять, что такое процедура и способы ее задания;

¾ понять, что такое функция и способы ее задания

¾ определить, в каких случаях целесообразно использовать процедуры, а в каких - функции.

 

Порядок выполнения работы:

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

2. Ознакомиться с представленными в лабораторной работе теоретическими сведениями.

3. Получить дополнительные теоретические знания из источников: [3: Глава 6], [4: Тема 8], [7: Занятие 11, 12], [10: Глава 8].

4. Реализовать на ЭВМ разобранные примеры.

5. Самостоятельно выполнить предложенные задачи.

 

Внимание: переходить к выполнению пунктов 4 и 5 только после тщательной проработки пунктов 1 – 3.

 





Поделиться с друзьями:


Дата добавления: 2017-02-28; Мы поможем в написании ваших работ!; просмотров: 268 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2602 - | 2280 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.