ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

небольшие изменения
  #1  
Старый 16.12.2007, 13:37
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
Unhappy небольшие изменения

Народ, кто поможет мне?
т.е. парень кинул мне готовую задачу, но разбираться нету сил уже...

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;
 
Ответить с цитированием

  #2  
Старый 16.12.2007, 14:07
Аватар для GlOFF
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Цитата:
т.е. парень кинул мне готовую задачу, но разбираться нету сил уже.
Да щас у всех завал с учебой, никаких сил и возможностей. (((
 
Ответить с цитированием

  #3  
Старый 16.12.2007, 14:26
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 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.
 
Ответить с цитированием

  #4  
Старый 16.12.2007, 15:24
Аватар для Sn@k3
Sn@k3
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме:
5151669

Репутация: 1198


Отправить сообщение для Sn@k3 с помощью ICQ
По умолчанию

Вроде компилируется...
Код:
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.
 
Ответить с цитированием

  #5  
Старый 16.12.2007, 15:33
Аватар для .Slip
.Slip
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.
__________________
..
 
Ответить с цитированием

  #6  
Старый 16.12.2007, 15:46
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию

уже исправил, но он уже говорит на um(s,str(k),s); - на um говорит незнает!!!!!... но это же какая-то функция, пжл скопируйте в паскаль. исправьте до комеиляции пжл
 
Ответить с цитированием

  #7  
Старый 16.12.2007, 16:00
Аватар для Xserg
Xserg
Участник форума
Регистрация: 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));
 
Ответить с цитированием

  #8  
Старый 16.12.2007, 16:31
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию

for k:=1 to i do um(s,str(k),s); - Error in Expression
 
Ответить с цитированием

  #9  
Старый 16.12.2007, 16:40
Аватар для Xserg
Xserg
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #10  
Старый 16.12.2007, 16:46
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 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..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменения в форуме antichat.ru Algol Болталка 0 05.12.2003 15:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ