Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 15.06.2011, 19:25   #1 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Снова Паскаль

есть такой вопрос, чтобы осуществить циклическую перестановку назад(влево) или вперед( вправо), надо тупо к номеру символа прибавит единичку?
если да, то как сделать чтоб последний символ переходил на место первого?только лишь посредством введения новой переменной?


прошу ответить, очень надо срочно! спасибо огромное)
Андрей Романюк вне форума   Ответить с цитированием

Старый 15.06.2011, 19:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можно поискать нужные ответы тут

Компьютер включается и выключается. И так снова и снова
Колонки для телефона
Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
И снова TDA7293
И снова Windows XP

Старый 15.06.2011, 19:58   #2 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

еще такой вопрос есть( но это не срочно, чисто для себя интересно)
надо сделать задачу:залить экран зеленым цветом, ввести строку с клавиатуры.Вывести ее в центре экрана, вставив в нее посередине "***"( без кавычек разумеется)))) я написал так:
program ...;
uses crt;
var A :string;{строка}
B:string;{подстрока}
c:integer;{центр строки}
i:integer;{номер символа}
x:real;{номер среднего символа}
begin
textbackground(2){зеленый};
clrscr;
writeln('введите строку');
readln(A);
B:='***';
for i:=1 to length(A) do
if i mod 2 = 0 then x:=i/2
else
x:=i/2 + 0.5;
writeln(x:0:0,',середина строки');
writeln('введите число, которое на единицу больше центра строки( смотри выше)')
readln(c);
insert(B,A,c);
gotoxy(27,12);
writeln(A,',полученная строка');
readln;
end.

переменную "с" ввел т.к. не смог х(центр строки) вставить в формулу с инсертом( там можно только целые), а как сделать по другому не знаю, если это возможно подскажите)))
Андрей Романюк вне форума   Ответить с цитированием
Старый 15.06.2011, 20:48   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей Романюк Посмотреть сообщение
есть такой вопрос, чтобы осуществить циклическую перестановку назад(влево) или вперед( вправо), надо тупо к номеру символа прибавит единичку? если да, то как сделать чтоб последний символ переходил на место первого?только лишь посредством введения новой переменной?
Ну почему же - можно это реализовать с помощью динамических массивов, стеков, указателей и т.п., что позволяет манипулировать с адресами элементов. Разбирайтесь!
Vladimir_S вне форума   Ответить с цитированием
Старый 15.06.2011, 20:58   #4 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ого, я и слов то таких не знаю, но спасибо, сейчас буду искать)))
Андрей Романюк вне форума   Ответить с цитированием
Старый 15.06.2011, 21:01   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей Романюк Посмотреть сообщение
переменную "с" ввел т.к. не смог х(центр строки) вставить в формулу с инсертом( там можно только целые), а как сделать по другому не знаю, если это возможно подскажите)))
Подсказываю.
Поскольку всё равно разрубить символ пополам Вы не можете и точная центровка строки не всегда получится (зависит от четностей количества символов в строке ширины экрана опять же в символах), введение вещественного х бессмысленно. Советую работать только с целыми числами и использовать целочисленное деление (оператор div), ну а дальше думайте, как оптимально расположить строку в зависимости от четности.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.06.2011, 21:16   #6 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ага, спасибо, получилось, так намного лучше))))
Андрей Романюк вне форума   Ответить с цитированием
Старый 16.06.2011, 19:41   #7 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

еще такой вопрос, а возможно ли из паскаля копировать текст программы в другое место(Word например)?
Андрей Романюк вне форума   Ответить с цитированием
Старый 16.06.2011, 20:41   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Андрей Романюк Посмотреть сообщение
еще такой вопрос, а возможно ли из паскаля копировать текст программы в другое место(Word например)?
А это смотря из какого Паскаля. Ежели из DOS-Турбосреды, то нет, нельзя. Но можно сохранить в турбосреде файл ляляля.pas и затем открыть его хоть тем же Word'ом.
Vladimir_S вне форума   Ответить с цитированием
Старый 17.06.2011, 11:52   #9 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

А что вам мешает открыть сохраненный файл программы (с расширением pas) с помощью этого текстового процессора?
ПКМ, открыть с помощью, указываете программу
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 17.06.2011, 12:09   #10 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Для выравнивания текста в графическом режиме можно установить режим выравнивания относительно указанной точки, например, этот листинг выравнивает текст строго по центру экрана:
Код:
SetTextJustify(CenterText,CenterText);
OutTextXY(GetMaxX div 2, GetMaxY div 2,'text');
Для горизонтального выравнивания константы
LeftText или 0
CenterText или 1
RightText или 2
Для вертикального выравнивания константы
BottomText или 0 - по нижнему краю
CenterTxt или 1
TopText или 2 - по верхнему краю
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:41.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.