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

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


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 365
от 09.05.2007, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 254, Экспертов: 73
В номере:Вопросов: 4, Ответов: 10


Вопрос № 85310: Здраствуйте. При выводе текста в графическом режиме у меня возникла небольшая проблема, c помошью фунции OutTextXY(x,y,string), выводит за задаными координатами только данные типа String. Как мне вывести данные типа Integer? Заранее благо...
Вопрос № 85337: Люди...помогите..прошлую лабу не засчитали... Найти решение уравнения у=(х-3)в кубе +2 с точностью 0,001 на отрезке[0,5].. я знаю вы сможете решить...ток пожалуйста до завтрашнего дня!!!!!...
Вопрос № 85339: Помогите с вот этим заданием!!!!!! Нарисовать... / ______/ / / / / _ _ _ _ _ _ _ идет вот эта штука должна идти Заранее благодарен...ток до завтрашнего дня...плииз!!!...
Вопрос № 85364: Добрый день уважаемые эксперты! мой вопрос №85124 *Имеется произвольный массив надо найти сколько в нём разных чисел(если все одинаковые, то ответ 1)*. Прикладываю решение задачи, в чём ошибка? (ибо программа выдаёт ответ 1 всегда). Заранее...

Вопрос № 85.310
Здраствуйте.
При выводе текста в графическом режиме у меня возникла небольшая проблема, c помошью фунции OutTextXY(x,y,string), выводит за задаными координатами только данные типа String.
Как мне вывести данные типа Integer?
Заранее благодарен.
Отправлен: 03.05.2007, 20:15
Вопрос задал: Torrens (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Устинов С.Е.
Здравствуйте, Torrens!

Воспользуйтесь функцией перевода числа в строку.
Пусть число, которое нужно вывести находится в переменной ttt, sss - какая-то переменная типа string:

str(ttt,sss);
OutTextXY(x,y,sss);

Удачи!
---------
Ждешь квалифицированного ответа? Задай правильно вопрос!
Ответ отправил: Устинов С.Е. (статус: Практикант)
Ответ отправлен: 03.05.2007, 20:23
Оценка за ответ: 5

Отвечает: Gh0stik
Здравствуйте, Torrens!

Вам просто нужно предварительно преобразовать число в строку, при помощи процедуры Str().

Выдержка из справки:

Str (процедура)
Преобразовывает число в строку.
Объявление:
Procedure Str(X [: Width [: Decimals ]]; Var S : String);
Режим:
Windows, Real, Protected
Замечания:
Преобразовывает числовое значение X в строковое представление этого числа,
которое можно выводить операторами типа Write и OutText.


Пример использования:
var x,y,t:integer;
s:string;
begin
.........
t:=100;
str(t,s);
OutTextXY(x,y,s);
.........
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 03.05.2007, 20:27

Отвечает: Smitex Alith
Здравствуйте, Torrens!
Преобразуйте данные целочисленного типа в строковый (например, функция STR).
Ответ отправил: Smitex Alith (статус: 1-ый класс)
Ответ отправлен: 03.05.2007, 20:42

Отвечает: Djec
Здравствуйте, Torrens!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума "О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".
Ответ не верный, в Pascal нет функции IntToStr!!!

-~= Gh0stik =~-
---------
Никогда не сдавайся, даже если боишься проиграть
Ответ отправил: Djec (статус: 2-ой класс)
Ответ отправлен: 03.05.2007, 21:48
Оценка за ответ: 5


Вопрос № 85.337
Люди...помогите..прошлую лабу не засчитали...
Найти решение уравнения у=(х-3)в кубе +2 с точностью 0,001 на отрезке[0,5]..
я знаю вы сможете решить...ток пожалуйста до завтрашнего дня!!!!!
Отправлен: 03.05.2007, 22:44
Вопрос задал: Трусов Александр Евгеньевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Gh0stik
Здравствуйте, Трусов Александр Евгеньевич!

Вот код программы которая находит корень методом дихотомии (половинного деления) с нужной точностью:

program dihotomiya;
uses crt;
var a,b,x,eps:real;
function f(x:real):real;
begin
f:=sqr(x-3)*(x-3)+2; {описание функции}
end;

begin
clrscr;
a:=0; b:=5; eps:=0.001;
writeln('[',a:3:2,',',b:3:2,']');
writeln('точность eps=',eps:3:3);
while abs(f(a)) > eps do
begin
x:=(a+b)/2;
if f(x)*f(b) < 0
then a:=x
else b:=x;
end;
writeln('x=',a:5:4);
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 03.05.2007, 23:06
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное....выручил))

Отвечает: Устинов С.Е.
Здравствуйте, Трусов Александр Евгеньевич!

Портал предназначен не для решения за кого-то задач, а для помощи, объяснений, подсказок, и если уж не получилось у Вас самого - тогда решений за Вас, поэтому фраза "до завтрашнего дня" здесь неуместна.
Хотите, чтобы за Вас решали - задавайте платный вопрос, а так когда будет у экспертов время, тогда и ответят и Вы сможете сравнить Ваш ответ с предложенным Вам ответом.
Странно, уравнения я у Вас и не вижу... Будем считать, что нужно решить уравнение (x-3)3+2=0.
С чем именно у Вас сложность? Не понимаете как решить задачу математически?
Нужно найти для каждого x на указанном промежутке с шагом 0,001 значение y и запомнить тот x, при котором будет минимальным y.
Так как функция возрастающая, то решение на данном отрезке может быть не более одного. (для других функций может быть несколько решений на промежутке). Предложу 2 варианта решения данной задачи:
Метод "полного перебора"

const n=0;m=5;s=0.001;
var x,minx,miny,y:real;
begin
x:=n; miny:=abs(sqr(x-3)*(x-3)+2); minx:=n;
while x < m do
begin
x:=x+s;
y:=abs(sqr(x-3)*(x-3)+2);
if y < miny then
begin
minx:=x; miny:=y;
end;
end;
writeln('Koren=',minx:9:5);
readln;
end.

Метод "половинного деления"

const s=0.001;
var n,m,x,y,yt:real;
begin
n:=0; m:=5;
repeat
x:=(m+n)/2;
y:=sqr(x-3)*(x-3)+2;
yt:=sqr(n-3)*(n-3)+2;
if y*yt<0 then m:=x else n:=x;
until (abs(m-n) < s);
writeln('Koren=',x:9:5);
readln;
end.

Книги по языку Pascal

Удачи!
---------
Ждешь квалифицированного ответа? Задай правильно вопрос!
Ответ отправил: Устинов С.Е. (статус: Практикант)
Ответ отправлен: 03.05.2007, 23:47
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ....а также за наставления и ссылку на книги)))Большущее))


Вопрос № 85.339
Помогите с вот этим заданием!!!!!!
Нарисовать...

/
______/
/ /
/ / _ _ _ _ _ _ _ идет

вот эта штука должна идти
Заранее благодарен...ток до завтрашнего дня...плииз!!!
Отправлен: 03.05.2007, 22:50
Вопрос задал: Трусов Александр Евгеньевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Gh0stik
Здравствуйте, Трусов Александр Евгеньевич!

Вот решение, но написал его конечно же возможно со своей точки зрения, поскольку задача была поставлена очень скользко.

uses crt;
const n=4; m=9;
dog:array[1..n,1..m] of char=
((' ',' ',' ',' ',' ',' ',' ',' ','/'),
('','_','_','_','_','_','_','/',' '),
(' ','/','',' ',' ',' ','/','',' '),
('/',' ',' ','',' ','/',' ',' ','')); {нашего "зверя" описываем через массив символов}
var k,step,i,j:integer;
sp:string;
begin
sp:=''; step:=30; {количество шагов "зверя"}
for k:=1 to step do
begin
clrscr;
for i:=1 to n do
begin
write(sp);
for j:=1 to m do write(dog[i,j]);
writeln;
end;
sp:=sp+' '; {строка в которой хранится "путь" "зверя"}
delay(7000); {делаем паузу чтобы можно было различить движение}
end;
readln;
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 04.05.2007, 00:54
Оценка за ответ: 5
Комментарий оценки:
Спасибище)))


Вопрос № 85.364
Добрый день уважаемые эксперты! мой вопрос №85124 *Имеется произвольный массив надо найти сколько в нём разных чисел(если все одинаковые, то ответ 1)*.
Прикладываю решение задачи, в чём ошибка? (ибо программа выдаёт ответ 1 всегда).
Заранее спасибо

Приложение:

Отправлен: 04.05.2007, 07:41
Вопрос задал: Peeny (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Peeny!
А тот код, который я вам привёл в качестве ответа на тот вопрос, не стали смотреть и запускать? Он ведь рабочий. И даже с той, особенностью что количество чисел может быть введено разное.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Помощь, советы, обмен опытом.
ICQ: 286837644
----
Ответ отправлен: 04.05.2007, 08:04
Оценка за ответ: 5
Комментарий оценки:
Ваш код работает, но просто хотелось сделать свою программу используя полученные решения.

Отвечает: Gh0stik
Здравствуйте, Peeny!

Вот видоизмененный код с выделенными строками в которых произведены изменения:

program Different_elements;
uses crt;

const MAX = 250;
var
a: array[0..MAX-1] of integer;
i, j: Integer;
N: integer;
different_counter: Integer;
begin
ClrScr;
write('Размер массива :> ');
readln(N);
for i:= 1 to N do begin
write('Введите ',i, ' число ');
readln(a[i]);
end;

ClrScr;
writeln('Вы ввели ');
for i:= 1 to N do write(a[i], ' '); {просто избавился от begin и end - они тут не нужны :)}
writeln; {переводим курсор на новую строку - просто для красоты}
different_counter:= N;
for i:= 0 to (N - 1) do begin
for j:=i+1 to N do begin
if (a[i] = a[j]) then begin
different_counter:= different_counter - 1;
Break;
end;
end;
end;

writeln('Количество разных чисел ',different_counter);
readln;
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 04.05.2007, 11:29
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!

Отвечает: Denisss

Здравствуйте, Peeny!

1. Ваш массив ограничен размером 250, значит после использования функции readln(N); следует проверить число N на соответствие этому и предпринять меры, если оно больше 250.

2. Строку:

readln(a[i]);

изменить на:

readln(a[i - 1]);


3. Строки:

writeln('Вы ввели ');
for i:= 1 to N do begin
  write(a[i], ' ');
end;

заменить на

writeln('Вы ввели ');
for i:= 0 to (N - 1) do begin
  write(a[i], ' ');
end;


4. строки:

for i:= 0 to (N - 1) do begin
  for
j:= 1 to N do begin

следует изменить на:

for i:= 0 to (N - 2) do begin
  for
j:= (i + 1) to (N - 1) do begin

Удачи!
Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
WWW: Хлама много, по сути ничего...
ICQ: 281599577
----
Ответ отправлен: 04.05.2007, 14:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 (beta) от 02.05.2007
Яндекс Rambler's Top100

В избранное