Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Turbo Pascal проблема - помогите, плиизз!

Автор: Don_Rumata
Дата сообщения: 17.10.2001 01:35
pomogite pozhaluista s algoritmami i sostavleniem program v turbo paskale 7.0 o4en proshu kto znaet, i imeet svobodnoe vremja napishite na e-mail: malumi@pisem net . o4en proshu ! sro4no ina4e vyle4u is instituta

1) Dan massiv Z={Zi} i = ot 1 do 5
vy4islit' dispersiju( harakterezuet razbros rezultatov
izmerenija , vokrug srednego zna4enie) dlja Y, gde Yi
vy4isljaetsa sledujushim ob razom :
proizvedenie (x=2;10<--matemati4eskii znak
proizvedenija snizu x=2,cverhu 10) (x+a)*e^Zi pri a=<
Zi<A+B/2, h( shag)=2
i
integral f(X;Z)dx pri a+b/2=<Zi <b
H ljuboe
gde a=Z min ;b =Z max
dlja vy4islenija integrala ispolzovat metod trapecii
f(x;Zi)-ljubye funkcii.


Большое спасибо заранее всем кто поможет!
Автор: Shurik
Дата сообщения: 17.10.2001 15:57
Don_Rumata

Цитата:
Большое спасибо заранее всем кто поможет!
А по-русски всё сообщение нельзя было написать? Даже ломает читать.
Автор: Erick Flatcher
Дата сообщения: 17.10.2001 19:38
так может у человека нет шрифтов, или еще че нить...
а последнюю месагу он год назад в качестве подписи писал...
Автор: WhitE_HeaD
Дата сообщения: 01.04.2002 11:06
Народ привет. Тут у меня задачка - в турбо паскале написать корень кубический из числа. Убил целый вечер. Помогите пожалуйста!
Автор: hash
Дата сообщения: 01.04.2002 11:30
Erick Flatcher
и название поста тоже год назад заготовил )

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

WhitE_HeaD
во блин, а как он считается то ?
Автор: Wowik
Дата сообщения: 02.04.2002 04:50

Цитата:
в турбо паскале написать корень кубический из числа.


Цитата:
во блин, а как он считается то ?

А в степени B X:=exp(B*ln(A));

а корень кубический это у нас A в степени 1/3

Автор: Yartsev
Дата сообщения: 01.10.2002 10:43
Ну раз тут вопросы задают, так я тоже сюда же )
Тоже задание из института, не могу понять одной вещи как мне перевести значение из получившегося массива в значение Х и потом передать это значения в формулу.
Условие звучит так
==
Для Х, принимающего значения от XN до XK с шагом &#8710;X,
определить Y. При этом: если x>g, то Y=A; если 0<=x<=g , то Y=B; если x<0, тоY=C.
Результат выдать в форме таблицы значений X и Y.
Значении переменных
A = e (в степени) x-8.6
B = Sin x
С = -9
Xn = -5
Xk = 25
&#8710;X = 7
G = 9.54
====
вот что я написал
====
Program Task2;
var
m: array [-5..25] of integer;
x, i, C : Integer;
A, B, G : real;
Y : real;
begin
for i:= -5 to 25 do
begin
m[i] := i*7 -5;
if m[i] > 0 then
if m[i] < 25 then
write(m[i]); {вот тут и возникает вопрос как из этого массива вытащить его значения и присвоить его иксу}
end;
begin
A := Exp(x-8.6);
B := Sin(x);
C := -9;
G := 9.54;
if x > G then Y := A
else if x < 0 then Y := C
else if x <= 0 then Y := B
else if x <= G then Y := B;
write(x,' ',Y);
writeln;
end;
end.
==
Заранее спасибо за помощь

Добавлено
&#8710; = дельта или шаг
Автор: amnick
Дата сообщения: 01.10.2002 18:17
Yartsev
Все решение можно записать в виде одного простого цикла (после присвоения начальных значений; a, b, c - функции от x):

x := Xn;
while x <= Xk do begin
if x < 0 then
y := c(x)
else if x > g then
y = a(x)
else
y := b(x);
write( x, ' ', y );
x := x + dx;
end;

И никаких массивов не нужно (хотя можно и сохранять значения в массиве, а уже потом печатать). А в том, что написали Вы, мне даже разбираться лень.

А извлечь значение из массива очень просто: x := m[i];

Don_Rumata
Ни малейшего желания читать транслит.
Автор: Esc
Дата сообщения: 02.10.2002 02:47
Don_Rumata не появлялся на руборде уж год, а добрые рубордовцы продолжали его изредка попинывать.
Автор: UncoNNecteD
Дата сообщения: 02.10.2002 06:58

Цитата:
Всего записей: 1 | Зарегистр. 17-10-2001 | Отправлено: 06:35 17-10-2001


РОФЛ

Esc
Автор: defis
Дата сообщения: 08.03.2003 08:17
Люди помогите если могете - у мя вот какая задача - в универе дали - а мы в школе тока чуть-чуть качались паскаля:
Причитать текстовой файл str.txt состоящий из произвольного числа строк, и вывести в файл str1.txt этот же текст так, чтобы в каждой строке содержалось ровно по 50 знаков.
я делал так:
из файла в строку скидывал - а вот как эту строку разделить бы?
Автор: raven
Дата сообщения: 08.03.2003 09:51
defis
Удаляешь всё после 50 символа через delete
Вроде так:
delete(s,50,length(s)-50);
Автор: defis
Дата сообщения: 08.03.2003 09:53
raven
Чёрт, ведь хотел - пасиб - щас провернем.
Автор: defis
Дата сообщения: 08.03.2003 17:43
Другой вопрос - если дано много-много маленьких массивов - а надо их объединить в группы(более большие массивы, а длина этих маленьких - один символ) - как?
Автор: raven
Дата сообщения: 08.03.2003 20:05
defis
Ничего не понял - поподробнее, если мона с конкретным примером.
Автор: defis
Дата сообщения: 08.03.2003 20:30
raven
Извиняюсь - до меня дошло почти - эту задачку низя через строку сделать - у неё же ведь длина максимум 255 - а там может быть и больше.
так что если есть предложения как сделать эту(Причитать текстовой файл str.txt состоящий из произвольного числа строк, и вывести в файл str1.txt этот же текст так, чтобы в каждой строке содержалось ровно по 50 знаков.) задачку буду благодарен.
-------------------
Мне вот тут предложили-но оно всё делает но в файле str1.txt не делает четко строчки по 50 символов, а через каждые 50 символов добавляет пробел.Вот текст который мне дали:
uses crt;
var
fp,fi:file of char;
i : integer; ch:char;

begin
assign(fi,'c:\111.bak');
assign(fp,'c:\111.bbb');
reset(fi); rewrite(fp);

while (not eof(fi)) do
begin
for i:=1 to 50 do
begin
if not eof(fi) then read(fi,ch);
if not eof(fi) then write(fp, ch);
end;
ch:=chr(13); write(fp,ch);
end;
close(fi); close(fp);
end.
Автор: raven
Дата сообщения: 08.03.2003 20:40

Цитата:
ch:=chr(13); write(fp,ch);

Попробуй поменять writeln(fp);
Или что-то типа этого.
Автор: defis
Дата сообщения: 09.03.2003 16:25
неа не катит.уже не догадываюсь ваще.
Автор: UncoNNecteD
Дата сообщения: 09.03.2003 19:27
Аднака по стандарту надо вставлять chr(10)+chr(13)...
если я не туплю
Автор: raven
Дата сообщения: 09.03.2003 20:08

Цитата:
Аднака по стандарту надо вставлять chr(10)+chr(13)...

Асек нахакался?

Можно ещё так writeln(fp,' ') или writeln(fp,'\n');

Ещё решение:

Код:
uses crt;
var
 fp,fi:file of char;
 i : integer; ch:char;
 
begin
assign(fi,'c:\111.bak');
assign(fp,'c:\111.bbb');
reset(fi); rewrite(fp);
 
while (not eof(fi)) do
begin
 for i:=1 to 49 do
  begin
   if not eof(fi) then begin
read(fi,ch);
    write(fp, ch);
end;
  end;
if not eof(fi) then begin
read(fi,ch);
  writeln(fp, ch);

end;
end;
close(fi); close(fp);
end.
Автор: Sleepwalker
Дата сообщения: 10.03.2003 01:01
господа.. а кто мешает создать динамическую переменную размером с файл, вырезать из нее все разрывы строк и разбить по 50 символов?
код получится правда немного сложнее

кстати... а приведенные коды тестировал кто-нибудь? :-\
Автор: Pinocchio
Дата сообщения: 11.03.2003 08:59
Sleepwalker
Зачем?
Автор: defis
Дата сообщения: 11.03.2003 18:21
raven
не хотит. оно ваще ничего не делает тогда.
а ещё оно матерится на:"writeln(fp, ch);" - когда "ln" убираешь - запускается - только эффекта нуль..

Добавлено
Sleepwalker
что ето такое?
Pinocchio
А как сделать - есть идеи? А то ведь - сам то я точно не доеду.
Автор: Sleepwalker
Дата сообщения: 12.03.2003 02:53
Pinocchio
за шкафом

defis
"что такое" - что?

Добавлено
defis

Цитата:
writeln(fp, ch);"

ессно... файл типизированный, а вритлн - для текстовых.
Автор: defis
Дата сообщения: 12.03.2003 03:45
Sleepwalker

Цитата:
а кто мешает создать динамическую переменную размером с файл, вырезать из нее все разрывы строк и разбить по 50 символов?
- "это".

Цитата:
код получится правда немного сложнее
- а практически мог бы показать?
Автор: defis
Дата сообщения: 12.03.2003 17:41
Мдя, интересно - идей боше нет?
О! кстати - у меня завтра пара у него - правда там лекция - я спрошу - если что я ещё сюды вернусь.
Автор: defis
Дата сообщения: 13.03.2003 12:43
У меня есть идея - вот тока не приходит в мои мозги как на практике это оформить. Идея такова - читать просто предложения - если в предложении >50 удаляем после 50 символа и заносим в тот файл(str1.txt) - если же меньше прибавляем с той строки у которой номер на 1 больше. вот такая у меня к вам просьба.
Автор: defis
Дата сообщения: 14.03.2003 17:30
Эту задачку я решил - если кого заинтересует текст решения - в ПМ.
У меня теперь другой вопрос:Есть задачка, также есть предложение как решить - надо только поправить где я неправ.
Вот задача:
В файле Data.txt хранятся записи с информацией о некоторой предметной области. Каждая запись хранится в текстовом виде в одной строке.Прочитать все записи из файла, отобрать нужные записи по введеному пользователем критерию и вывести их в файл Data1.txt использовать записи.:
Библиотека.Поля записи:Фамилия автора, название книги, год издания, число страниц. Варианты отбора:по фамилии автора и по годам издания.
Вот текст примерного решения.

Код:
label
b1;
a1;
var
f1,f:text;
avtor:string;
n,god:integer;
glava,nazvanie,godik,chislo:string;
begin
writeln('Poisk v biblioteke!');
Assign(f,'c:\Data.txt');
Assign(f1,'c:\Data1.txt');
reset(f);
writeln('Kak iskat budem - god izdania ili po avtoru?Esli po avtoru gmi 1, esli po godu izdania to 2!'),a;
readln(a);
if a:=1 then goto a1
else goto b1
a1:
repeat
write('Avtor->');
readln(glava);
if length(glava)<>0 then
begin
reset(f);
n:=0;
while not EOF do
begin
readln(f,glava);
readln(f,nazvanie);
readln(f,godik);
readln(f,chislo);
if glava=avtor then
append(f1);
begin
writeln(f1,glava,nazvanie,godik,chislo);
end;
close(f1);
n:=n+1
end;
if n=0 then writeln('Svedenii o',avtor,'netu');
end;
until length(avtor)=0;
b1:
repeat
write('god->');
readln(god);
if length(god)<>0 then
begin
reset(f);
n:=0;
while not EOF do
begin
readln(f,glava);
readln(f,nazvanie);
readln(f,godik);
readln(f,chislo);
if godik=god then
append(f1);
begin
writeln(f1,glava,nazvanie,godik,chislo);
end;
close(f1);
if n=0 then writeln('Svedenii o',god,'netu');
end;
until length(avtor)=0;
end;
Автор: millenium
Дата сообщения: 05.04.2003 10:59
Доброе время суток всем.
Вопрос к знатокам Turbo Pascal 7.0.
Возникла проблема при использовании процедуры EXEC с графическим режимом.
Как извесно процедура EXEC для своей работы требует инструкцию компилятора {$M 4000,0,0}.
Так вот, при использовании этой инструкции в исходнике программы, после ее запуска,
графический режим вылетает с ошибкой "BGI Error: Graphics not Initialized ( use InitGraph )".
Если не использовать инструкцию, то графический режим нормально запускается, но зато
не работает EXEC.
Я понять не могу, в чем тут дело. Если кто знает в чем проблема, пожалуйста помогите.
Автор: IntenT
Дата сообщения: 05.04.2003 11:36
millenium
Если память мне не изменяет, то перед вызовом exec надо возвращаться в текстовый режим - как родной для доса. И Никаких инструкций exec не требует

Страницы: 12

Предыдущая тема: Про запуск из под Delphi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.