Помогите сроочно пллиз
|
|
1.Пусть задан текст, за которым следует точка. Поменяйте все строчные латинские буквы, которые встречаются в тексте, на прописные.
2.Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. Напечатайте эту строку, предварительно удалить все вхождения th.
sLip
|
|
|
1. var s:string; i:word; begin readln(s); for i:=1 to length(s) do s[i]:=upcase(s[i]); writeln(s); end.
2. Не совсем условие понял. var s:string; i:word; begin readln(s); for i:=1 to length(s) do if (s[i]=' ')and(s[i+1]=' ') then delete(s,i,1); writeln(s); end.
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
№ 2 | Автор: Berestovskiy |
2012-02-01, 23:45 | Изменено: Berestovskiy - Чт, 2012-02-02, 18:22
|
Репутация: [ + 211 ]
|
|
|
2.Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. Напечатайте эту строку, предварительно удалить все вхождения th.
Ответ
2. Не совсем условие понял. var s,s1:string; i,j:word; begin readln(s); j:=1; for i:=1 to length(s) do begin if (s[i]='t')and(s[i+1]='h') then begin i:=i+1; end else begin s1[j]:=s[i]; j:=j+1; end; end; writeln(s1); end.
Таким образом получим строку s1 без вхождений th в ней.
|
|
|
Quote (aufgeklärt) 2. Не совсем условие понял. Мне показалось, что нужно удалить все пробелы, а th - это что-то типа thx(спасибо) :D
Quote (aufgeklärt) aufgeklärt Твой код не оптимален) Держи второе: var s:string; begin readln(s); while pos('th',s)<>0 do delete(s,pos('th',s),2); writeln(s); end.
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
можно и так....
но я так понимаю, что указание на 40 символов не просто так....если нужно будет переделать задачу под массив, то нужно использовать тот подход, который я показала.
|
|
|
Проверил код твой. строка s1 получается пустой при любом вводе.
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
var s,s1:string; i,j:word; begin readln(s); j:=1; s1:=''; for i:=1 to length(s) do begin if (s[i]='t')and(s[i+1]='h')and(i<=(length(s)-1)) then begin i:=i+1; end else begin s1[j]:=s[i]; j:=j+1; end; end; writeln(s1); end.
|
|
|
Ну мой код в 2,5 раза меньше) Плюс если смущение насчёт 40-ка символов, то: s:string[40]; Плюс у меня одна переменная, а у тебя четыре :Р
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
Согласна, но стоит проверить время выполнения стандартных функций работы pos() А код у тебя меньше из-за того, что не пользуешся операторными скобками (в смысле begin...end) ))
|
|
|
Quote (aufgeklärt) Согласна, но стоит проверить время выполнения стандартных функций работы pos() Ну на мой взгляд - быстрее чем поэлементный пробег по массиву символов))
мм..ну я бы пользовался, если бы они там были нужны))
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
помогите пожалуйста !
1) В таблице хранятся следующие данные о студентах определенной группы: фамилия, имя, отчество, рост. Вычислить средний рост студентов, рост самого высокого и самого низкого студента. Сколько студентов могут заниматься в баскетбольной секции, если рост баскетболиста должен быть не менее 170 см?
2) Дан одномерный массив. Заменить все элементы массива, меньшие 1 на среднее арифметическое положительных элементов массива.
3) Дан массив, содержащий N элементов. Написать программу с подпрограммой, которая будет выполнять упорядочение элементов массива по возрастанию.
кристина
|
|
|