Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10854
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Мастер-Эксперт
Рейтинг: 7019
∙ повысить рейтинг »
Роман Селиверстов
Статус: Советник
Рейтинг: 4943
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1260
Дата выхода:17.06.2014, 15:08
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:34 / 45
Вопросов / ответов:3 / 17

Консультация # 115313: Задан массив с размерностью N=10 найти сумму первых пяти положительных членов. Заранее спасибо!!...


Консультация # 21701: Здраствуйте!!! Вопрос наверное вам уже надоел, но всё ж... Как писать в паскале русской кодировкой??! Он пишет только латиницей. Заранее спасибо....
Консультация # 29324: Здравствуйте! А можно ли как-то написать открывающееся и закрывающееся окно на Turbo Pascal? Такое, как, например, окно подтверждения выхода в FAR\'e, или NC... Так, чтобы при закрытии этого окна, тот, текст, что под ним, не стирался?...

Консультация # 115313:

Задан массив с размерностью N=10 найти сумму первых пяти положительных членов.
Заранее спасибо!!

Дата отправки: 21.12.2007, 23:44
Вопрос задал: Голиков Алексей Николаевич
Всего ответов: 3
Страница онлайн-консультации »


Консультирует SHERRY:

Здравствуйте, Голиков Алексей Николаевич!
Код программы в приложении.

Приложение:

Консультировал: SHERRY
Дата отправки: 21.12.2007, 23:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует sergesus:

Здравствуйте, Голиков Алексей Николаевич!

const
n=10;
var
A: array [1..n] of double; {Наш массив }
S: double; {Куда записывается сумма}
j,i,k: integer;
begin
repeat
begin
S:=0; {начальное значение суммы (S- сумма елементов >0)}
k:=0; {k-счедчик элесентов}
for i := 1 to n do
if A[i]>0 then
begin
S:=S+A[i];
k:=k+1
end;

end;
until k=5;
end.

Приложение:

Консультировал: sergesus
Дата отправки: 22.12.2007, 00:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Alexey Ku:

Здравствуйте, Голиков Алексей Николаевич!

Насколько я понял Ваш вопрос:

var
i, { цикловая переменная }
n, { счетчик положительных }
Sum: integer; { сумма }
{ массив M будем считать заданным }
..
Sum:=0;
n:=0;
for i:=1 to 10 do begin
if M[i]>0 then begin
Inc(Sum, M[i]);
Inc(n);
if n=5 then Break; { если пять чисел найдены - выходим из цикла }
end; { if }
end; { for }

Консультировал: Alexey Ku
Дата отправки: 22.12.2007, 02:39
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 21701:

Здраствуйте!!!
Вопрос наверное вам уже надоел, но всё ж...
Как писать в паскале русской кодировкой??!
Он пишет только латиницей.
Заранее спасибо.

Дата отправки: 03.06.2005, 10:15
Вопрос задал: Rivisor
Всего ответов: 9
Страница онлайн-консультации »


Консультирует Jadd:

Здравствуйте, Rivisor!
позвольте полюбопытствовать, а что имеется в виду? Писать сообщения по-русски? Писать комманды русскими буквами? Операторы и комманды никогда не будут переведены на русский. А сообщения можно писать и это не зависит от языка программирования, а только от операционной системы. Если делается это в досе, ставим 866 кодовую страницу в config.sys. В Винде все само должно отображаться. Сформулируйте вопрос корректно, а то приходится догадываться о его смысле.

Консультировал: Jadd
Дата отправки: 03.06.2005, 10:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Вадим Исаев ака sir Henry (Старший модератор):

Здравствуйте, Rivisor!
К Паскалю это не имеет никакого отношения. Настройте русский язык в Вашей операционной системе.
Для w9x
------ config.sys -----------
country=007,866,c:\windows\country.sys
------ autoexec.bat -------
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
********************************
Для w2k/XP/2003
------ Реестр ------------------------------
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes
Измените значение строковой переменной 00000409 с "us" на "ru"
------ autoexec.nt ------------------------
lh %SystemRoot%\System32\kb16 ru
----------------------------------------------
После перезагрузки компьютера в Ваших досовских приложениях язык переключается:
Ctrl+Left Shift (английский) и Ctrl+Right Shift (русский).

Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 03.06.2005, 10:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Snowm@n:

Здравствуйте, Rivisor!
Достаньте что-нибудб типа rk.com (русификатор), положите его в папку с TP и запускайте IDE следующим BATником:

echo off
rk.com
turbo.exe

Для переключения кодировок нажимайте оба SHIFTа (для данного русификатора)

Консультировал: Snowm@n
Дата отправки: 03.06.2005, 11:36
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Andrewkz:

Здравствуйте, Rivisor!
посмотри модуль... не знаю если чесно где качать, но называется RK.COM
Если очень нужно пиши на мыло php@4design.ws и я как найду отправлю тебе этот модуль.

Консультировал: Andrewkz
Дата отправки: 03.06.2005, 13:04
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует John Freeman:

Здравствуйте, Rivisor!
Это не к паскалю - прочитай Windows 2000/xp FAQ сначала!!!
Ну или прямо скажу - для DOS/DOS сессии надо русификатор для DOS ставить
LMD!

Консультировал: John Freeman
Дата отправки: 03.06.2005, 13:52
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ерёмин А.А. (Специалист):

Здравствуйте, Rivisor!
Хмм... Вообще-то, в Pascal можно и даже нужно писать на русском! Переключение - либо оба <shift> одновременно, либо правые <ctrl>+<shift>. Потом и пишем. А если при запуске программы или в самом окне редактора появятся непонятные символы, т.е. неверная кодировка, то можно предварительно запускать русификатор, например rk.com.

Консультировал: Ерёмин А.А. (Специалист)
Дата отправки: 03.06.2005, 13:55
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Асоков Александр Иванович:

Здравствуйте, Rivisor!
Не чего подобного паскаль поддерживает и руско язачную расклатку, но проблеммы с ней возникают в некоторых операционных системах таких например как windows Xp,Windows 2000 . честно не придстовляю что происходит с раскладкой на этих ОС. Могу тока предположить что здесь возможно дело в шрифтах которыми пользуются эти ОС.

Консультировал: Асоков Александр Иванович
Дата отправки: 03.06.2005, 14:05
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Duckslayer_:

Здравствуйте, Rivisor!
Не судьба тебе в этой жизне, на DOS-ом Pascal-е вывести русско-язычный текст.

Консультировал: Duckslayer_
Дата отправки: 03.06.2005, 16:30
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Загиров Рустам / Stamm (Специалист):

Здравствуйте, Rivisor!
Попробуй переключиться комбинацией клавиш ALT+CTRL(оба правые)

Консультировал: Загиров Рустам / Stamm (Специалист)
Дата отправки: 04.06.2005, 14:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 29324:

Здравствуйте!
А можно ли как-то написать открывающееся и закрывающееся окно на Turbo Pascal? Такое, как, например, окно подтверждения выхода в FAR\'e, или NC...
Так, чтобы при закрытии этого окна, тот, текст, что под ним, не стирался?

Дата отправки: 10.11.2005, 19:58
Вопрос задал: Euphoriz
Всего ответов: 5
Страница онлайн-консультации »


Консультирует Вадим Исаев ака sir Henry (Старший модератор):

Здравствуйте, Euphoriz!
Можно. Для этого надо запомнить тот кусок экрана, который перекрывается окном.
Я, например, это делаю так (пример написан для FreePascal, т.к. TurboPascal в винде с видеопамятью работать не будет):
Type
TScreen = array[1..25] of array[1..80] of record
symbol: char; {Символ изображенный на экране}
Attribute: byte; {Его цветовой аттрибут}
End;
var
videomemory: TScreen absolute $B800:$0000;
{Это переменная содержить ячейки видеопамяти для экрана 80х25}
Procedure SaveScreen(Rect: TRect; var VideoBuf: TSreen);
{Запоминаем часть экрана в буфере}
var
i,j: integer;
Begin
For i:=Rect.A.Y To Rect.B.Y Do
For j:=Rect.A.X To Rect.B.X DO
Begin
VideoBuf[i][j].Symbol:=VideoMemory[i][j].Symbol;
VideoBuf[i][j].Attribute:=VideoMemory[i][j].Attribute;
End;
End;

RestoreScreen(Rect: TRect; VideoBuf: TSreen);
{Восстанавливаем часть экрана из буфера}
var
i,j: integer;
Begin
For i:=Rect.A.Y To Rect.B.Y Do
For j:=Rect.A.X To Rect.B.X DO
Begin
VideoMemory[i][j].Symbol:=VideoBuf[i][j].Symbol;
VideoMemory[i][j].Attribute:=VideoBuf[i][j].Attribute;
End;
End;
Для TurboPascal те же самые действия можно сделать через VideoBIOS. Работает медленнее, но винда эмулирует прерывания Биос вроде как нормально.
Как это делается - честно говоря расписывать неохота. Если Вам очень уж нужно (т.е. Вы ни в какую не хотите использовать современные версии Паскаля), то напишите мне, тогда я Вам распишу.
Примитивное создание окна - это вызов процедуры Window(), рисование по его краям рамочки (лучше вне координат окна). Рамочки рисуются помещением соответствующего символа в видеопамять. Потом обычным способом выводите текст в это окно.
Как оно будет закрываться - полностью на Ваше усмотрение. Информации Вы дали мало (например, используется мышь или нет).
--------------------
Чтобы не париться с написанием примитивов для манипуляции окнами, советую Вам найти в инете Object Professional для TurboPascal. В нем есть модуль OpWindow, как раз для этих целей. Ссылку дать не могу, потому что очень давно плюнул на TurboPascal, так как он в винде сильно глючит.
--------------------
Есть еще пакет TurboVision, там тоже есть средства для работы с окнами, но они сильно сложные. :)
--------------------
Для консольных приложений Дельфи (тот же Паскаль, но без его глюков) можно скачать библиотеку KOL и модуль crt4kol. В этот модуль также включены необходимые средства по работе с окнами и дан простой пример по применению.
Ссылка: bonanzas.rinet.ru

Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 10.11.2005, 20:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Vitava:

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

Удачи Вам!

Консультировал: Vitava
Дата отправки: 10.11.2005, 22:05
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Маренич Владимир:

Здравствуйте, Euphoriz!
Боюсь, что придется все ручками, а это тема целой статьи, а не ответа на вопрос.
Попробуйте использовать Turbo Vision. В свое время довольно эффективно можно было писать софт под DOS не сильно думая об интерфейсе. Там все это реализовано. Удачи.

Консультировал: Маренич Владимир
Дата отправки: 11.11.2005, 00:03
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Boriss (Академик):

Здравствуйте, Euphoriz!
Да нет, все просто в Turbo, коей ДОСовский:
Borland Pascal все пишет на первую (с номером 0) текстовую видеостраницу, начинающуюся по адресу B800:0000. Все остальные 7 можно использовать как хочешь (Turbo Vision так и делает)
С помощью move легко реализуется ...

Приложение:

Консультировал: Boriss (Академик)
Дата отправки: 11.11.2005, 10:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Витомский Вадим Викторович (Профессионал):

Здравствуйте, Euphoriz!
Лучше всего для этого использовать библиотеку TurboVision, которая входит в дистрибутив начиная от Turbo Pascal 6.0

Консультировал: Витомский Вадим Викторович (Профессионал)
Дата отправки: 11.11.2005, 13:21
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


© 2001-2012, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А. | Гладенюк А.Г.
Версия системы: 2011.6.36 от 26.01.2012

В избранное