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

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


Информационный Канал Subscribe.Ru


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

Выпуск № 225
от 28.12.2003, 19:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 393
Отправлено ответов: 1397
Активность: 355.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Drahus
Статус: Опытный
Общий рейтинг: 166.95
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 148.26
URL: Программирование на Паскале
[Подробней >>]
Vitally
Статус: Доверительный
Общий рейтинг: 159.45
[Подробней >>]
 
sir henry
Статус: Профессиональный
Общий рейтинг: 161.06
[Подробней >>]
Tancho
Статус: Профессиональный
Общий рейтинг: 152.25
Телефон: сл. 0359 0391 65 631; 0359 0391 53 105
[Подробней >>]
samum2000
Статус: Доверительный
Общий рейтинг: 116.91
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 389. У меня проблема! DLL библиотеки, написанные на Borland Pascal не воспринимаются TMT Pascal. Так дол... (ответов: 2)
Вопрос № 390. Здравствуйте! Помогите пожалуйста решить задачу по Pascal'у: Вычислить 0,1*x+0,3*x+0,5*x+…+2,2*x Во... (ответов: 4)

Вопросов: 2, ответов: 6


 Вопрос № 389

У меня проблема! DLL библиотеки, написанные на Borland Pascal не воспринимаются TMT Pascal.
Так должно быть, или я чего-то не то делаю.
Как можно совместить эти языки?



Вопрос отправлен: 24.12.2003, 21:14
Отправитель: RL

[Следующий вопрос >>] [Список вопросов]

Отвечает Drahus

Добрый день, RL!
Так и должно быть. Они различаются. Вроде никак.


Ответ отправлен: 25.12.2003, 03:02
Отправитель: Drahus


Отвечает Boriss

Приветствую Вас, RL!
Попробуйте поместить исходник в папку проекта своего. Пусть ТМТ сам сделает все

Ответ отправлен: 25.12.2003, 09:08
Отправитель: Boriss


 Вопрос № 390

Здравствуйте! Помогите пожалуйста решить задачу по Pascal'у:
Вычислить 0,1*x+0,3*x+0,5*x+…+2,2*x
Вот и вся задача собственно...
И еще вопрос, бъясните, зачем нужна строка WriteLn(‘Нажмите клавишу Enter’) в следующем программном коде:
Var
Count: Array [1..2] of integer;
Rate: Array [1..2] of real;
I: integer;
Sum: real;
Begin
Sum:=0;
For I:=1 to 2 do
Begin
Write(‘введите цену товара № ‘,I,’: ‘); Readln(Rate[I]);
Write(‘введите количество товара № ‘,I,’: ‘); Readln(Count[I]);
Sum:=Sum+Rate[I]*Count[I]
End;
Writeln(‘Стоимость покупки: ‘, Sum:12:2);
Writeln(‘Нажмите клавишу Enter’);
Readln
End.
А так же непонятно для чего нужны следующие символы: № ‘,I,’: ‘ в строках Write(‘введите цену товара № ‘,I,’: ‘); Readln(Rate[I]); и Write(‘введите количество товара № ‘,I,’: ‘); Readln(Count[I]);
Заранее всем большое спасибо и всех с наступающим Новым годом!



Вопрос отправлен: 25.12.2003, 18:54
Отправитель: Hellraiser

[Следующий вопрос >>] [Список вопросов]

Отвечает Vitally

Привет, Hellraiser!
Попробую объяснить, но... это азы азов. Может почитаешь учебник?!..
Существует такое понятие, как - переменная. (Типа x, y, z в математике). Переменная - это именованая (имеющая имя) ячейка памяти, в которой программа хранит значения. Обращение к этой ячейке происходит по ее имени. В твоей программе есть слово "Var" - Это ключевое слово, обозначающее начало объявления переменных. Дальше, через ";" перечисленны переменные, используемые в этой программе. После имени переменной (например I) идет ":" и тип переменной. (Какие значения она может принимать. Большие или маленькие, целые или десятичные и пр.) Например I:Integer; - означает, что мы объявили переменную "I", которая может принимать значения от (примерно) - 32000 до +32000.
Так вот, ты объявляешь цикл (For i:=1 to 2 do) - Это значит, что переменной I присваевается значение 1, и цикл выполняется до тех пор, пока и не будет равна 2 (включительно). Каждый раз, возвращаяськ началу цикла, значение I увеличивается на 1. Слудовательно, в первом случае оператор Write('Введите цену товара № ',I,':'); выдаст: Введите цену товара № 1: . А во втором случае: Введите цену товара № 2: . Тоже самое со вторым оператором Write. А символ № - просто для красоты и понятности. Все, что берется в одиночные ковычки, просто выводится на экран. Например, если написать это так: Write('Введите цену товара № ,I,:); То мы получим: Введите цену товара № ,I,: - в любом случае. (Первая ковычка обозначает начало текста, вторая - его конец. Дальше, после запятой, можно повторить..)
Rate и Count - это массивы переменных. То ест - большая переменная, которая хранит в себе много маленьких. Обращение к конкретному значению, происходит с помощью индекса (цифри или переменной). Rate[I] - обозначает обращение к I-той переменной массива Rate. В данной программе переменная I имеет сначало значение 1, а затем 2. Cоответственно в первом случае мы обращаемся к первой ячейке (переменной) массива Rate, а во втором случае ко второй. Это то же самое, что написать Rate[1]; или Rate[2]; соответственно.
Итак, оператор Write - выводит информацию на экран; а оператор Readln - читает информацию, введенную с клавиатуры (ожидает ввода) и переводит курсор (не видимый) на следующую строчку (после ввода числа - например 10 - нужно нажать Enter).
Следовательно: Readln(Count[I]) - означает, что значение, которое ты введешь с клавиатуры, запишется на I-тое место в массиве Count. (В первом случае на первое место, во втором случае на второе).
В коце программы операторы Writeln и Readln - Нужны для того, чтобы программа не прекращала свою работу. (Чтобы записать результат в блокнотик, например). Вместо 'нажмите клавишу Enter' можно написать что угодно. Например 'Программа закончит свою работу после нажатия клавиши Enter'. А Readln - как я уже говорил, ожидает ввода. Следовательно данные на экране будут хранится столько времени, сколько тебе неоходимо. А после нажатия клавиши Enter программа закончит свою работу и вернется в операционную систему (например DOS или Windows).
Что касается решения, то у тебя не правильное условие. При шаге = 0,2 - мы не получаем 2,2. 0,1; 0,3; 0,5; 0,7; 0,9; 1,1; 1,3; 1,5; 1,7; 1,9; 2,1; 2,3 :((
Но, я кое-что написал. Если надо будет переделать - пиши.


Приложение:

Ответ отправлен: 25.12.2003, 23:18
Отправитель: Vitally


Отвечает sir henry

Приветствую Вас, Hellraiser!
1. Объявляете массив коэффициентов и в цикле умножаете их на переменную х.
2. Она нужна исключительно для того, чтобы вывести на экран сообщение 'Нажмите клавишу Enter’.
3. Даже не знаю, что Вам ответить по этому поводу :)))).
Символами здесь являются только "№" и ":", I - это уже не символ а переменная.
Все, что стоит в скобках WriteWriteLn - выводится либо на экран, либо в другое устройство вывода (принтер или файл, например). WriteWriteLn - это макрос вывода чего-нибудь куда-нибудь.

Приложение:

Ответ отправлен: 26.12.2003, 04:55
Отправитель: sir henry


Отвечает Tancho

Доброе время суток, Hellraiser!
1) Про 0,1*x+0,3*x+0,5*x+…+2,2*x, если коеффициентый меняются шагом 0,2 то откуда взялось 2,2? Если не все коефициенты меняються с шагом 0,2 то как именно меняються?
Пока неясно!Иначе, если вместо 2,2 стоить 2,1 :
Var
sum, rab, x : Real;
begin
Write('Введите Х : '); ReadLn(x);
sum := 0;
rab := 0.1;
While rab <= 2,2 do
begin
sum := sum + rab*x;
rab := rab + 0,2
end;
WriteLn;
Writeln('0,1*x+0,3*x+0,5*x+…+2,2*x для x = ',x:7:3,
' = ',sum:10:4);
WriteLn('Для выход нажмите ');
ReadLn;
end. ;
2} а) Иначе если ты находишься у IDE прогу после завершение
автоматично вернеть управление IDE и для просмотр результату надо входить заново у Dos Shell, а это неудобно!
Предполагаеться что в конце резултать тебе интерисуеть!Или не так?
б) ами для таво что, то кто вводит чисель, разобратся где что вводить - разве это не понятно!



Ответ отправлен: 26.12.2003, 17:43
Отправитель: Tancho


Отвечает samum2000

Доброе время суток, Hellraiser!
>Вычислить 0,1*x+0,3*x+0,5*x+…+2,2*x
>Вот и вся задача собственно...
i:=0;
res:=0;
repeat
inc(i,0.1);
res:=res+x*i;
until i=2.2
... вот и все решение :)
>И еще вопрос,зачем нужна строка WriteLn(‘Нажмите клавишу Enter’)
Чтобы вывести на экран надпись "Нажмите клавишу Enter", чтобы пользователь знал, что он должен нажать Enter, а не какой-то там "Any Key"
>А так же непонятно для чего нужны следующие символы: № ‘,I,’: ‘в
>строках Write(‘введите цену товара № ‘,I,’: ‘); Readln(Rate[I]);и
>Write(‘введите количество товара № ‘,I,’: ‘); Readln(Count[I]);
По порядку:
1. Строка вида 'XXXXXXXXXXXXXXXXXX №' выведет на экран текст, в котором последним символом будет № (номер).
2. Запятая указывает, что после неё стоит еще что-то, что надо вывести на экран (в нашем конкретном случае это сам номер товара).
3. I - это переменная, в которой, видимо, хранится номер товара.
4. Очередная запятая - см. пункт 2.
5. ' (апостроф) указывет, что все, что будет между ним и следующим апострофом - строка.
6. Это сама строка, которая должна быть выведена после номера товара.
7. ' (апостроф) - это закрывающий апостроф (см. пункт 5)
В итоге на экран будет выведено "введите цену товара № 1: "
И еще одно. Эти вопросы подробно описываются в любой, даже очень старой и плохой, методичке по языку Паскаль, поэтому не надо лениться, просто открой и посмотри.
>Заранее всем большое спасибо и всех с наступающим Новым годом!
И тебя тоже :)))
Попутного ветра!

Ответ отправлен: 27.12.2003, 12:52
Отправитель: samum2000



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (27)
C / C++ (18)
Perl (4)
Builder / Delphi (19)
Pascal (22)
Basic / VBA (3)
Java / JavaScript (5)
PHP (10)
Криптография (7)
WinAPI (12)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (51)
"Железо" (29)
Поиск информации (20)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (14)
Юристу
Гражданское право (15)
Семейное право (9)
Трудовое право (10)
КоАП (9)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное