Задачи для дополнительного решения (на усмотрение учителя)




1. Запросите у пользователя числа, преобразуйте их в строки, произведите их сцепление в разных сочетаниях и вывод на экран. Не забудьте поставить между строками пробел, в конце точку и начать с заглавной буквы.

2. Запросите у пользователя несколько строк и выведите на экран их длину, результат конкатенации в некотором порядке и произведите проверку, можно ли преобразовать эти строки в числа.

3. Запросите у пользователя строку, состоящую из 5 символов, и проверьте является ли она примером, складывающим два однозначных числа, каждое из которых меньше пяти; если является, то вычислите его.

4. Запросите у пользователя строку, состоящую из нескольких слов, разделенных пробелом, и выведите ее на экран так, чтобы каждое слово начиналось с новой строки.

5. Запросите у пользователя две строки и сравните их длину, первый и последний символ каждой строки, а также выведите на экран эти строки с заглавной буквы.

6. Напишите алгоритм, проверяющий, является ли частью данного слова слово "сок". Если ответ отрицательный, то добавьте к введенному слову слово "нет" в начало и конец. Если ответ "да", то проверьте, не является ли оно словом «сокол».

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

8. Запросите у пользователя строку и символ и выведите на экран сообщение, имеется ли среди символов строки заданный пользователем символ. Если - нет, то добавьте в его строку этот символ по выбору: в начало или в конец строки.

9. Загадайте пользователю детскую загадку. Дайте ему возможность трижды попробовать отгадать Вашу загадку. Сопровождайте работу программы диалогом с пользователем. Примените конкатенацию введенных строк.

10. Заставьте компьютер случайным образом загадать букву латинского (русского) алфавита. Предложите пользователю отгадать загаданную букву, помогая ему следующим образом. Если в очередной попытке пользователем введена буква, стоящая ближе к загаданной, чем предыдущая, то выводите пользователю сообщение "Горячее!", а если дальше - "Холоднее!".

11. Заставьте компьютер случайным образом загадать букву латинского (русского) алфавита. Предложите пользователю отгадать загаданную букву, помогая ему следующим образом. Если пользователем введена буква, стоящая слева от загаданной, то выводите пользователю сообщение "Правее!", а если справа - "Левее!".

Задачи для дополнительного решения (на усмотрение учителя)

1. Выясните, какая из букв (первая или последняя) встречается в заданном слове чаще.

2. Сколько букв "у" в слове стоит на четных местах?

3. В тексте, состоящем из латинских букв и заканчивающемся точкой, подсчитайте количество гласных букв.

4. Вычеркните i-ую букву слова.

5. Вычеркните из слова Х те буквы, которые встречаются в слове Z.

6. Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ.

 

Подготовка к олимпиаде

Вводятся два очень длинных целых числа. Найти их сумму.

 

Описание переменных:

s1, s2, s3 - строковые представления первого, второго числа и их суммы;

n1, n2, n3 - текущие разряды первого и второго чисел и перенос из предыдущего разряда;

l1, l2 - длины введенных строк из чисел;

c - строковое представление суммы текущих разрядов.

Алгоритм решения задачи:

Под "очень длинными целыми числами" здесь подразумеваются такие, которые не помещаются даже в тип данных longint.

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

В цикле символы строки s1 перебираются с конца до первого (счетчик i). Каждый символ преобразуется в целое число. Также с конца берутся символы s2 (счетчиком служит l2) и преобразуются в целое. Числа складываются. Сумма записывается в начало строки s3 без старшего разряда, который сохраняется в отдельной переменной n3 и добавляется к сумме при следующем сложении разрядов.

Когда строка s1 заканчивается, надо проверить есть ли перенос из младшего разряда. Если есть, то надо продолжать складывать, пока перенос не станет равным нулю.

 

После того, как складывать уже нечего, надо дописать впереди s3 оставшуюся часть s2.

 

Программа на языке Паскаль:

var

s1, s2, s3: string;

n1, n2, n3, l1, l2, i: byte;

c: string[1];

begin

readln(s1);

readln(s2);

l1:= length(s1);

l2:= length(s2);

if l1 > l2 thenbegin

s3:= s1; l3:= l1;

s1:= s2; l1:= l2;

s2:= s3; l2:= l3

end;

s3:= ''; n3:= 0;

fori:= l1 downto 1 dobegin

val(s1[i],n1);

val(s2[l2],n2); l2:= l2 - 1;

str((n1+n2+n3) mod10,c);

s3:= c + s3;

if n1+n2+n3 > 9 then n3:=1

else n3:= 0;

end;

while n3 = 1 dobegin

if l2 <> 0 thenbegin

val(s2[l2],n2); l2:= l2 - 1;

str((n2+n3) mod10,c);

s3:= c + s3;

if n2+n3 < 10then n3:=0;

end

elsebegin

s3:= '1' + s3;

n3:= 0;

end;

end;

if l2 <> 0 then

s3:= copy(s2,1,l2) + s3;

writeln(s3);

end.

Пример выполнения программы:

 

 

Примеры решения задач смотри также здесьhttps://pas1.ru/taskstring

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: