Старая форма входа
Регистрация
Дорогие друзья!
Наш форум закрыт для общения сейчас,
но вы можете задать свой вопрос или перейти в чат Телеграм.
Пожалуйста, напишите на почту files@21vu.ru ваш вопрос, ситуацию, чтобы обратиться к коллегам в чате.
Если вы хотите просто вступить в чат, также напишите на почту, укажите сведения о себе: ФИО, кто вы, кто по профессии, чем можете быть полезны педагогам, и мы направим вас в Чат Телеграм.
  • Страница 1 из 1
  • 1
Модератор форума: Екатерина_Пашкова  
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Паскаль, строки (помогите на Паскале решить)
Паскаль, строки
АрсикДата: Понедельник, 05.12.2011, 19:17 | Сообщение # 1
Арсик

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Сообщений:
19
Награды: 0
Статус: Offline
написать и протестировать функцию , которая "переворачивает" все пары символов строки, передаваемой ей в качестве параметра.(привет друг->рпвитед ург)
05.12.2011
alex_eduДата: Вторник, 06.12.2011, 17:26 | Сообщение # 2
alex_edu

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Сообщений:
607
Награды: 7
Статус: Offline
- цикл соответствующий длине фразы с шагом 2
- выыводим или добаляем к результату фунции (i+1)ый символ строки потом i-ый.
- обработать ситуацию когда нечетное кол-во
06.12.2011
pavel7Дата: Четверг, 22.12.2011, 18:59 | Сообщение # 3
pavel7

Павел Сапунов
Ранг: Школьник (?)
Группа: Пользователи
Сообщений:
72
Награды: 1
Статус: Offline
Добрый день, Арслан!

Я решил тебе помочь, но не знаю - не поздно ли? Я только вчера первый раз зашёл на этот сайт.
Вот программка:

USES crt;
var
i,j,n :integer;
r:real;
s:string;
c,a,b:char;

begin clrscr;

s:='I want to write good programs';
writeln(s);
j:=length(s);
writeln(j);
r:=j;
{ если количество символов в строке нечетно,
то последний символ не трогаем
}
if (j div 2)<>(r/2) then j:=j-1;
writeln(j);

n:=j div 2;

{ меняем местами пары символов:
}
for i:=1 to n do
begin
a:=s[i*2-1];
b:=s[i*2];
c:=a;
a:=b;
b:=c;
s[i*2-1]:=a;
s[i*2]:=b;
end;
writeln(s);
{
проверка:
}
for i:=1 to n do
begin
a:=s[i*2-1];
b:=s[i*2];
c:=a;
a:=b;
b:=c;
s[i*2-1]:=a;
s[i*2]:=b;
end;
writeln(s);

c:=readkey;end.

Удачи!
22.12.2011
alex_eduДата: Четверг, 22.12.2011, 23:34 | Сообщение # 4
alex_edu

Александр Обычный
Ранг: Магистр (?)
Группа: Пользователи
Сообщений:
607
Награды: 7
Статус: Offline
if (j div 2)<>(r/2) then j:=j-1;
n:=j div 2;

Эти две строки стоит поменять местами. Чтоб два раза не выполнять вычисления.
Переворачиание в функцию. Чтобы для проверки не повторять код.
Много лишних вычисления при переворотах.
Думаю так будет симпатичнее.
Code

USES crt;
var
         str : string;
   
         function Change(iStr : string) : string;
         var
                 i : integer;
                 strLen : integer;
                 tmp : char;
         begin
                 strLen := length(iStr);
                 i:=2;
                 while i < strLen do begin
                         tmp := iStr[i-1];
                         iStr[i-1] := iStr[i];
                         iStr[i] := tmp;
                         i :=  i+2;
                 end;
                 Change := iStr;
         end;
          
begin  
         clrscr;
         str:='I want to write good programs';
         writeln(str);
         str := Change(str);
         writeln(str);
         str := Change(str);
         writeln(str);
         readkey;
end.

Длинна строки вычисляется в данном коде два раза - это для чистоты, чтоб функция была "полноценной"
Под рукой компилятора нет - воспользловался онлайн http://ideone.com
Вот результат работы предыдущего автора http://ideone.com/5Gb92
вот результат моего кода: http://ideone.com/cceMU

То, что начинаем с индекса 2 плюс ограничение цикла длинной дает нам условие, что обрабатываются только пары.
Замена for на while дает возможность применять шаг 2
22.12.2011
pavel7Дата: Пятница, 23.12.2011, 21:01 | Сообщение # 5
pavel7

Павел Сапунов
Ранг: Школьник (?)
Группа: Пользователи
Сообщений:
72
Награды: 1
Статус: Offline
Согласен, Ваша программа красивее.
Повезло Арслану - теперь у него две программы!
23.12.2011
АрсикДата: Воскресенье, 25.12.2011, 23:14 | Сообщение # 6
Арсик

Арслан Батыршин
Ранг: Дошколенок (?)
Группа: Пользователи
Сообщений:
19
Награды: 0
Статус: Offline
Спасибо всем)))сам не ожидал, что даж несколько вариантов получилось
25.12.2011
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Паскаль, строки (помогите на Паскале решить)
  • Страница 1 из 1
  • 1
Поиск:



Отзывы

Егорова Елена 5.0
Отзыв о товаре ША PRO Анализ техники чтения по классам
и четвертям
Хочу выразить большую благодарность от лица педагогов начальных классов гимназии «Пущино» программистам, создавшим эту замечательную программу! То, что раньше мы делали «врукопашную», теперь можно оформить в таблицу и получить анализ по каждому ученику и отчёт по классу. Великолепно, восторг! Преимущества мы оценили сразу. С начала нового учебного года будем активно пользоваться. Поэтому никаких пожеланий у нас пока нет, одни благодарности. Очень простая и понятная инструкция, что немаловажно! Благодарю Вас и Ваших коллег за этот важный труд. Очень приятно, когда коллеги понимают, как можно «упростить» работу учителя.
Наговицина Ольга Витальевна 5.0
учитель химии и биологии, СОШ с. Чапаевка, Новоорский район, Оренбургская область
Отзыв о товаре ША Шаблон Excel Анализатор результатов ОГЭ
по ХИМИИ
Спасибо, аналитическая справка замечательная получается, ОГЭ химия и биология. Очень облегчило аналитическую работу, выявляются узкие места в подготовке к экзамену. Нагрузка у меня, как и у всех учителей большая. Ваш шаблон экономит время, своим коллегам я Ваш шаблон показала, они так же его приобрели. Спасибо.
Чазова Александра 5.0
Отзыв о товаре ША Шаблон Excel Анализатор результатов ОГЭ по
МАТЕМАТИКЕ
Очень хороший шаблон, удобен в использовании, анализ пробного тестирования занял считанные минуты. Возникли проблемы с распечаткой отчёта, но надо ещё раз разобраться. Большое спасибо за качественный анализатор.
Лосеева Татьяна Борисовна 5.0
учитель начальных классов, МБОУ СОШ №1, г. Красновишерск, Пермский край
Отзыв о товаре Изготовление сертификата или свидетельства конкурса
Большое спасибо за оперативное изготовление сертификатов! Все очень красиво. Мой ученик доволен, свой сертификат он вложил в портфолио. Обязательно продолжим с Вами сотрудничество!
Язенина Ольга Анатольевна 4.0
учитель начальных классов, ОГБОУ "Центр образования для детей с особыми образовательными потребностями г. Смоленска"
Отзыв о товаре Вебинар Как создать интересный урок:
инструменты и приемы
Я посмотрела вебинар! Осталась очень довольна полученной информацией. Всё очень чётко, без "воды". Всё, что сказано, показано, очень пригодится в практике любого педагога. И я тоже обязательно воспользуюсь полезными материалами вебинара. Спасибо большое лектору за то, что она поделилась своим опытом!
Арапханова Ашат 5.0
ША Табель посещаемости + Сводная для ДОУ ОКУД
Хотела бы поблагодарить Вас за такую помощь. Разобралась сразу же, всё очень аккуратно и оперативно. Нет ни одного недостатка. Я не пожалела, что доверилась и приобрела у вас этот табель. Благодаря Вам сэкономила время, сейчас же составляю табель для работников. Удачи и успехов Вам в дальнейшем!
Дамбаа Айсуу 5.0
Отзыв о товаре ША Шаблон Excel Анализатор результатов ЕГЭ по
РУССКОМУ ЯЗЫКУ
Спасибо огромное, очень много экономит времени, т.к. анализ уже готовый, и особенно радует, что есть варианты с сочинением, без сочинения, только анализ сочинения! Превосходно!
Спорная ситуация с родителями или администрацией? Ищете выход из проблемы на уроке или с учеником?
Не знаете, как что-то сделать на компьютере?


Вы можете задать анонимный вопрос
х
Подробно изложите суть вашего вопроса.
Обратите внимание, что вопросы публикуются в открытом доступе на сайте, в нашем чате Телеграм поэтому не указывайте персональные данные ваши или иных лиц. Однако стоит указать свой РЕГИОН, т.к. законодательство в разных регионах разное.
Отправить