Дан двухмерный целочисленный массив размером nxn. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Дан двухмерный целочисленный массив размером nxn.



а) все его элементы, кратные трем, записать в одномерный массив.

б) все его положительные элементы записать в один одномерный массив, а остальные - в другой.

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

г) сформировать одномерный массив, каждый элемент которого равен количеству нечетных отрицательных элементов соответствующего столбца двумерного массива.

15) Дан двумерный массив из четного числа столбцов. Поменять местами первый со вторым, третий - с четвертым и т.д.

Строки.

Последовательность символов называют строкой.

Переменная типа string должна быть объявлена в разделе описания переменных так:

Имя: string; или Имя: string[длина];

где Имя – имя переменной; string – ключевое слово обозначения строкового типа; длина – константа типа integer, определяющая максимальную длину последовательности символов, которая может быть присвоена переменной.

Примеры: name: string [30];

s: string;

Если при объявлении переменной длина не указывается, то предполагается что длина строки равняется 255 символам, т.е. объявления s: string; и s:string[255]; эквивалентны.

В тексте программы последовательность символов, являющаяся строкой, заключается в одинартные кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:

parol:=’большой секрет’; или parol:=’2010’;

Утверждение parol:=2010; приведет к ошибке при компиляции, так как тип переменной не соответствует типу константы.

Переменную типа string можно сравнивать с другой переменной или константой типа string, используя операторы =, <, >, <=, >=, <>. Строки сравниваются посимвольно от первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. Например: Иванов – 1 строка, Иванов – 2 строка, тогда они равны; васильев – 1 строка, Васильев – 2 строка, тогда 1 строка больше 2; Алексеев – 1 строка, петров – 2 строка, тогда 1 строка меньше 2; Иванова – 1 строка, Иванов – 2 строка, тогда 1 строка больше 2.

Кроме операций сравнения к строковым переменным и константам можно применить оператор сложения, в результате выполнения которого получается новая строка, полученная склеиванием двух или более строк. Например: name:=’Иван’;

fam:=’Иванов’;

fn:= fam +’ ‘+name;

переменная fn получит значение ’Иванов Иван’.

Задачи:

1) Составить программу:

а) которая запрашивает имя человека и повторяет его на экране с приветствием;

б) которая запрашивает название футбольной команды и повторяет его на экране со словами: "Это чемпион!".

2) Составить программу, которая запрашивает отдельно имя и отдельно фамилию, а затем выводит их как одну символьную строку.

Строковые функции

Функция length.

Функция length возвращает длину строки. У функции один параметр – переменная строкового типа. Возвращаемое значение функции (целое число) – количество символов, из которых состоит строка, без учета начальных и завершающих пробелов. Например length(’Иванов’) равно 6, а значение length(’ Невский проспект ’) равно 16, так как при вычислении длины строки функция не учитывает начальные и завершающие пробелы.

Примеры определения длины строки

• k:=length(‘мир’); k=3

• s:=‘Кот и пес’; n:= length(s); n=9

• s1=‘’; i:= length(s1); i=0 ‘’ - пустая строка!

Задачи:

3) Дано название футбольного клуба. Определить количество символов в нем.

4) Дано название города. Определить четно или нет количество символов в нем.

5) Даны две фамилии. Определить какая из них длиннее.

Функция copy.

Функция copy позволяет выделить фрагмент строки. В общем виде обращение к функции copy выглядит так: (строка, p, n);

где строка – переменная строкового типа, содержащая строку, фрагмент которой надо получить; p – номер первого символа в строке строка, с которого начинается выделяемая подстрока; n – длина выделяемой подстроки. Например, в результате выполнения команд:

s:= ‘Инженер Иванов’;

fam:= copy (s, 9, 6);

значением переменной fam будет строка ‘Иванов’.

Примеры выделения символов

• s:=‘информатика’;

s1:=copy (s, 3, 5); s1=‘форма’

s2:=copy (s, 8, 2)+ copy (s, 3, 1); s2=‘тиф’

Задачи:

6) Дано слово. Получить его часть, образованную второй, третьей и четвертыми буквами.

7) Дано слово, состоящее из четного числа букв. Вывести на экран его первую половину, не используя оператор цикла.

8) Дано слово. Получить его часть, образованную идущими подряд буквами, начиная с m-й и кончая n-й.

9) Из слова "яблоко" путем вырезок его букв получить слова "блок" и "око".

Процедура insert.

Процедура insert позволяет добавить часть строки в исходную строку. В общем виде обращение к процедуре выглядит так: Insert (подстрока, строка, p);

где подстрока – строковая константа или переменная, которую необходимо добавить в строковую переменную строка; p – номер первого символа в строке строка, с которого начинается добавление подстроки.

Примеры вставки символов

• s:=‘мама’;

insert (‘очк’, s, 4); s=‘мамочка’

• s1:=‘рог’;

s2:=‘по’;

insert (s1, s2, 3); s2=‘порог’

Задачи:

10) Дано слово. Вставить букву "т" после k-й буквы.

11) Дано слово. Вставить заданную букву после первой буквы "и".

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

Процедура delete.

Процедура delete позволяет удалить часть строки. В общем виде обращение к процедуре выглядит так: delete (Строка, p, n);

где строка – переменная строкового типа; p – номер символа, с которого начинается удаляемая подстрока; n – длина удаляемой подстроки.

Например, в результате выполнения команд:

s:= ‘Город Санкт-Петербург’;

delete (s, 7, 6);

значение переменной s будет строка ‘Город Петербург’.

Примеры удаления символов

• s:=‘котик’;

delete (s, 4, 2); s=‘кот’

• s:=‘информатика’;

delete (s, 1, 2);

delete (s, 6, 4); s=‘форма’

Задачи:

13) Дано слово:

а) удалить из него третью букву;

б) удалить из него k-ю букву.

в) удалить из него первую из букв "о", если такая буква есть.

г) удалить из него последнюю из букв "т", если такая буква есть.

14) Дано слово. Если его длина нечетная, то удалить среднюю букву, в противном случае - две средних буквы.

15) Дано предложение. Удалить из него все символы с n1-го по n2-й (n1£n2).

16) Дано предложение. Удалить из него все буквы "с".

17) Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.

18) Дано предложение. Удалить из него все буквы "о", стоящие на нечетных местах.

Функция pos.

Функция pos позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так: pos (Подстрока, строка);

где Подстрока – строковая константа или переменная, которую надо найти в строковой константе или переменной строка.

Например, в результате выполнения команды: p:= pos (‘Пе’, ‘Санкт-Петербург’); значение переменной p будет равно 7. Если в строке нет искомой подстроки, то функция возвращает ноль.

Примеры определения позиции

• k:=pos(‘р’, ’мир’); k=3

• s:=‘колокол’;

n:=pos(‘кол’, s); n=1

• s1:=‘ок’; s2:=‘кок’;

i:=pos(s1, s2); i=2

• k:=pos(‘п’, ’мама’); k=0

Задачи:

19) Дано предложение, в котором имеется несколько букв "е". Найти:

20) а) порядковый номер первой из них;

21) б) порядковый номер последней из них.

22) Дано предложение. Определить, есть ли в нем буква "а". В случае положительного ответа найти также порядковый номер первой из них.

23) Дано предложение. Определить количество букв "н", предшествующих первой запятой предложения.

24) Дано предложение. Напечатать все символы, расположенные между первой и второй запятой. Если второй запятой нет, то должны быть напечатаны все символы, расположенные после единственной имеющейся запятой.

25) Дано предложение, в котором имеются одна буква "с" и одна буква "т". Определить, какая из них встречается раньше (при просмотре слова слева направо).

Процедура val.

процедура val позволяет преобразовать изображение числа в число. В общем виде обращение к процедуре выглядит так: val (Строка, число, код).

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

var

month: integer;

st: string[10];

code: integer;

begin

repeat

write (‘Месяц->’);

readln (st);

val (st, month, code);

if code<>0 then

writeln (‘Ошибка! Месяц следует задать цифрой.’);

until code=0;

end.

Задачи:

26) Дан текст. Напечатать все имеющиеся в нем цифры.

27) Дан текст. Определить количество цифр в нем.

28) Дан текст, в котором имеются цифры.

29) а) Найти их сумму.

30) б) Найти максимальную цифру.

31) Дан текст, в начале которого имеются пробелы и в котором имеются цифры. Найти порядковый номер максимальной цифры, считая, что первый номер имеет первый непробел. Если максимальных цифр несколько, то должен быть найден номер первой из них.

Процедура str.

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

где выражение – выражение или переменная целого или вещественного типа, строка – строковая переменная, которой будет присвоено изображение выражения.

Процедура ord

Процедура ord возвращает десятичный код символа.

ord(C[1]) где C[1] стока длины1 или переменная типа char.

Задачи общие:

32) Дано предложение. Определить число букв "о" в нем.

33) Дано предложение. Определить число пробелов в нем.

34) Дано предложение. Определить число вхождений в него некоторого символа.

35) Дано предложение. Определить долю (в %) букв "а" в нем.

36) Дан текст. Сколько раз в нем встречается символ "+" и сколько раз символ "*".

37) Дано предложение. Определить сколько в нем одинаковых соседних букв.

38) Дано предложение. Определить число вхождений в него буквосочетания "ро".

39) Дано предложение. В нем слова разделены одним пробелом (начальные и конечные пробелы в предложении отсутствуют). Определить количество слов в предложении.

40) Дано предложение. В нем слова разделены одним или несколькими пробелами. Определить количество слов в предложении.

41) Дан текст. Подсчитать общее число вхождений в него символов "+" и "-".

42) Дано предложение. Определить, сколько в нем гласных букв.

43) Дано предложение. Все буквы "е" в нем заменить на букву "и".

44) Дано предложение. Все его символы, стоящие на четных местах заменить на букву "ы".

45) Дано предложение. Заменить в нем все вхождения буквосочетания "ах" на "ух".

46) Дано предложение. Заменить в нем все вхождения буквосочетания "бит" на "рог".

47) Дана последовательность слов. Проверить, правильно ли в ней записаны сочетания "жи" и "ши".

48) Дана последовательность слов. Проверить, правильно ли в ней записаны сочетания "ча" и "ща". Исправить ошибки.

49) Дано слово. Определить, сколько различных букв в нем.

50) Даны два слова. Определить, можно ли из букв первого из них получить второе. Рассмотреть два варианта:

а) повторяющиеся буквы второго слова могут в первом слове не повторяться;

б) каждая буква второго слова должна входить в первое слово столько же раз, сколько и во второе.

51) Даны три слова. Напечатать только те буквы слов, которые есть только в одном из слов. Рассмотреть два варианта:

а) повторяющиеся буквы каждого слова рассматриваются;

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

52) Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать.

53) Даны три слова. Напечатать неповторяющиеся в них буквы.

Символы.

Для хранения и обработки отдельных символов используются переменные типа char. Значением переменной типа char может быть любой символ. Переменная символьного типа должна быть объявлена в разделе описания переменных так:

Примеры: otv: char;

В результате выполнения программы:

var

c1, c2, otvet: char;

begin

c1:=’*‘;

c2:=c1;

write (‘Вы хотите научиться программировать?’);

readln (otvet);

writeln (c1, ‘Ваш ответ: ’, otvet, c2);

readln;

end.

переменная с1 получает значение присваиванием значения константы, с2 – присваиванием значения переменной с1, а значение переменной otvet вводится с клавиатуры.

Обратите внимание: переменная otvet объявлена как char, т.е. один символ. Поэтому если в ответ на вопрос программы будет введено, например слово «Да», то переменная otvet получит значение «Д».



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 517; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.74.54 (0.046 с.)