Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.12.2007, 13:37
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
небольшие изменения
Народ, кто поможет мне?
т.е. парень кинул мне готовую задачу, но разбираться нету сил уже...
program Snak3;
var ss,s:string;
n,i,k:longint;
read(n); ТУТ ругается что нет ':' это как? хм, может кто попробует исправить? спасибо, задача считает вида 1!+2!+3!+...+n!
s:=''; ss:='';
for i:=1 to n do
begin
for k:=1 to i do um(s,str(k),s);
sum(ss,s,ss);
end;
procedure um(a,b:string;var c:string);
var n,k,i,j,x,p:integer; d:string;
begin
n:=length(a);
k:=length(b);
c:=''; d:=''; p:=0;
for i:=1 to n+k do d:=d+'0';
for j:=k downto 1 do
begin
p:=0;
for i:=n downto 1 do begin
x:=(ord(a[i])-ord('0'))*(ord(b[j])-ord('0'))+p+ord(d[i+j])-ord('0');
d[i+j]:=chr((x mod 10)+ord('0'));
p:=x div 10;
end;
d[j]:=chr(ord(d[j])+p);
end;
i:=1;
n:=length(d);
while (d[i]='0') and (i<n) do inc(i);
for k:=i to n do c:=c+d[k];
end;
procedure raz(a,b:string;var c:string);
var x,n,k,i,p,g:integer;
d:string;
begin
n:=length(a);
k:=length(b);
if k<n then for i:=k+1 to n do b:='0'+b;
d:=''; c:=''; p:=0;
for i:=n downto 1 do
begin
if a[i]<b[i] then
begin
a[i-1]:=chr(ord(a[i-1])-1);
x:=10+ord(a[i])-ord(b[i]);
d:=chr(x+ord('0'))+d;
end
else begin
x:=ord(a[i])-ord(b[i]);
d:=chr(x+ord('0'))+d;
end;
end;
i:=1;
n:=length(d);
while (d[i]='0') and (i<n) do inc(i);
for k:=i to n do c:=c+d[k];
end;
function cmp(a,b:string):string;
var n,k,i:integer; c:string;
begin
n:=length(a);
k:=length(b);
c:='';
if n<k then c:='-' else
begin
if k<n then c:='+' else
begin
i:=1;
while ((a[i]=b[i])and(i<=n)) do inc(i);
if (a[i]<b[i]) then c:='-';
if (a[i]>b[i]) then c:='+';
if (i=n+1) then c:='=';
end;
end;
cmp:=c;
end;
procedure sum(a,b:string;var c:string);
var x,i,p,n,k:integer;
begin
n:=length(a);
k:=length(b);
p:=0;
c:='';
if n<k then begin
for i:=n+1 to k do
a:='0'+a;
end else
begin
for i:=k+1 to n do
b:='0'+b; end;
n:=length(a);
for i:=n downto 1 do
begin
x:=ord(a[i])-ord('0')+ord(b[i])-ord('0')+p;
c:=chr((x mod 10)+ord('0'))+c;
p:=x div 10;
end;
if p<>0 then
begin
inc(n);
c:='1'+c;
end;
|
|
|

16.12.2007, 14:07
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
т.е. парень кинул мне готовую задачу, но разбираться нету сил уже.
Да щас у всех завал с учебой, никаких сил и возможностей.  (((
|
|
|

16.12.2007, 14:26
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
хоть тут помогите!!!!!!
program one;
var s,dx,x1,x2:real;
q:array[1..20] of integer;
r:array[1..25] of integer;
i:integer; x,qq,kk:integer;
k:array[1..100] of integer;
function y(x:real):real;
begin
For i:=1 to 20 do begin
read(q[i]);
if ((q[i]>-1.2)and(q[i]<3.4)) then inc(qq);
end;
For i:=1 to 25 do
begin
read(k[i]);
if ((q[i]>2.2) and (q[i]<5.34)) then inc(kk);
end;
if qq<kk then
begin
qq:=qq+kk;
kk:=qq-kk;
qq:=qq-kk;
end;
y:=x/(sqrt(exp(x*ln(exp(1)))- exp((-x)*ln(exp(1)))));
begin
assign(output,'output1.txt');
rewrite(output);
i:=kk;
while i<=qq do
begin
x1:=y(q+i*dx); тут ругается type mismatch несоответствие типов!!!
x2:=y(q+i*dx+dx);
s:=s+(x1+x2)/2*dx;
i:=i+dx;
end;
writeln(s);
end.
|
|
|

16.12.2007, 15:24
|
|
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме: 5151669
Репутация:
1198
|
|
Вроде компилируется...
Код:
program one;
var dx:integer;
s,x1,x2:real;
q:array[1..20] of real;
r:array[1..25] of real;
k:array[1..100] of real;
i:integer;x,qq,kk:integer;
function y(x:real):real;
begin
For i:=1 to 20 do begin
read(q[i]);
if ((q[i]>-1.2)and(q[i]<3.4)) then inc(qq);
end;
For i:=1 to 25 do begin
read(k[i]);
if ((q[i]>2.2) and (q[i]<5.34)) then inc(kk);
end;
if qq<kk then begin
qq:=qq+kk;
kk:=qq-kk;
qq:=qq-kk;
end;
y:=x/(sqrt(exp(x*ln(exp(1)))- exp((-x)*ln(exp(1)))));
End;
begin
assign(output,'output1.txt');
rewrite(output);
i:=kk;
while i<=qq do begin
x1:=y(q[i]+i*dx);
x2:=y(q[i]+i*dx+dx);
s:=s+(x1+x2)/2*dx;
i:=i+dx;
end;
writeln(s);
end.
|
|
|

16.12.2007, 15:33
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
Код:
program Snak3;
var ss,s:string;
n,i,k:longint;
read(n); ТУТ ругается что нет ':' это как? хм, может кто попробует исправить? спасибо, задача считает вида 1!+2!+3!+...+n!
s:=''; ss:='';
for i:=1 to n do
begin
for k:=1 to i do um(s,str(k),s);
sum(ss,s,ss);
end;
Эмм... Насколько я помню, в поцкале после окончания блока с переменными и их объявлениями, нужно писать begin.
|
|
|

16.12.2007, 15:46
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
уже исправил, но он уже говорит на um(s,str(k),s); - на um говорит незнает!!!!!... но это же какая-то функция, пжл скопируйте в паскаль. исправьте до комеиляции пжл
|
|
|

16.12.2007, 16:00
|
|
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме: 426226
Репутация:
726
|
|
1.
Код:
program Snak3;
var ss,s:string;
n,i,k:longint;
procedure um(a,b:string;var c:string);
var n,k,i,j,x,p:integer;
d:string;
begin
n:=length(s);
k:=length(b);
c:=''; d:=''; p:=0;
for i:=1 to n+k do d:=d+'0';
for j:=k downto 1 do
begin
p:=0;
for i:=n downto 1 do begin
x:=(ord(a[i])-ord('0'))*(ord(b[j])-ord('0'))+p+ord(d[i+j])-ord('0');
d[i+j]:=chr((x mod 10)+ord('0'));
p:=x div 10;
end;
d[j]:=chr(ord(d[j])+p);
end;
i:=1;
n:=length(d);
while (d[i]='0') and (i<n) do inc(i);
for k:=i to n do c:=c+d[k];
end;
procedure sum(a,b:string;var c:string);
var x,i,p,n,k:integer;
begin
n:=length(a);
k:=length(b);
p:=0;
c:='';
if n<k then begin
for i:=n+1 to k do
a:='0'+a;
end else
begin
for i:=k+1 to n do
b:='0'+b; end;
n:=length(a);
for i:=n downto 1 do
begin
x:=ord(a[i])-ord('0')+ord(b[i])-ord('0')+p;
c:=chr((x mod 10)+ord('0'))+c;
p:=x div 10;
end;
if p<>0 then
begin
inc(n);
c:='1'+c;
end;
end;
begin
write('Enter n');
readln(n);
ss:='';
for i:=1 to n do begin
s:='1';
for k:=1 to i do um(s,str(k),s);
sum(ss,s,ss);
end;
writeln('1!+2!+3!+..+n!=',ss);
read(n);
end.
2.
Код:
x1:=round(y(q+i*dx));
|
|
|

16.12.2007, 16:31
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
for k:=1 to i do um(s,str(k),s); - Error in Expression
|
|
|

16.12.2007, 16:40
|
|
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме: 426226
Репутация:
726
|
|
Сообщение от rubik-nerubik
for k:=1 to i do um(s,str(k),s); - Error in Expression
У меня нет паскаля, я использовал delphi:
um(s,inttostr(k),s);
кажется надо
Uses utilits или crt ??
Последний раз редактировалось Xserg; 16.12.2007 в 16:47..
|
|
|

16.12.2007, 16:46
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
ну а так работает? стукни 350-659-776
всеровно неработает
вот собственно решение задачи, 2 #4
компилица вроде она, но не работает =\ хз
Вычислить значение интеграла на заданном отрезке[q;r] интегрирования методом средних прямоугольников при заданном числе разбиений отрезка интегрирования К. Подынтегральная функция: y:=x/(sqrt(exp(x*ln(exp(1)))- exp((-x)*ln(exp(1))))); . Значения q и r, соответственно равные числу элементов массива Q(20), находящихся в интервале от –1.2 до 3.4 и числу элементов массива К(25),находящихся в интервале от 2.2 до 5.34, вычислить в одной подпрограмме. Если q>r, значения поменять местами.
Последний раз редактировалось rubik-nerubik; 16.12.2007 в 16:54..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|