Вопрос № 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
-~= Gh0stik =~-
--------- Никогда не сдавайся, даже если боишься проиграть
Ответ отправил: Djec (статус: 2-ой класс)
Ответ отправлен: 03.05.2007, 21:48 Оценка за ответ: 5
Вопрос № 85.337
Люди...помогите..прошлую лабу не засчитали...
Найти решение уравнения у=(х-3)в кубе +2 с точностью 0,001 на отрезке[0,5]..
я знаю вы сможете решить...ток пожалуйста до завтрашнего дня!!!!!
Отвечает: 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.
Ответ отправил: Устинов С.Е. (статус: Практикант)
Ответ отправлен: 03.05.2007, 23:47 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ....а также за наставления и ссылку на книги)))Большущее))
Вопрос № 85.339
Помогите с вот этим заданием!!!!!!
Нарисовать...
/
______/
/ /
/ / _ _ _ _ _ _ _ идет
вот эта штука должна идти
Заранее благодарен...ток до завтрашнего дня...плииз!!!
Отвечает: 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 Комментарий оценки: Спасибо