Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Basic to Pascal or C++

9.8K
10 июня 2007 года
FISH.ka
35 / / 07.01.2007
Нашла код на который мне нужен, но он на Basice, мне надо его переделать на Pascal или С++, может кто-то знает как перевести???
Код:
10 REM ~~~AMO~~~
20 REM ВЫЧИСЛЕНИЯ КОРНЯ СИСТЕМЫ ЛИНЕЙНЫХ
УРАВНЕНИЙ
30 DIM A(20,2l),B(20,20),W(20)
40 INPUT "ВВЕДИТЕ ПОРЯДОК РЕШАЕМОЙ СИСТЕМЫ";N
50 PRINT "ВВЕДИТЕ ПО СТРОКАМ КОЭФФИЦИЕНТЫ
СИСТЕМЫ"
60 FOR I=1 ТО N
70 INPUT A(I,I):B(I,I)=ABS(A(I,I)) 80 FOR J=2 TO N
90 INPUT A(I,J):B(I,J)=B(I,J-I)+ABS(A(I,J))
100 NEXT J
110 INPUT A(I,N+1)
120 NEXT I
130 FOR I=1 TO N
140 W(I)=A(I,N+1)/(1-B(I,N))
150 NEXT I
160 INPUT "ВВЕДИТЕ НОМЕР РЕШАЕМОГО УРАВНЕНИЯ -В И КОЛИЧЕСТВО РЕАЛИЗАЦИИ СЛУЧАЙНОГО ПРОЦЕССА - М ";В,М
170 T=1:Y=0
180 S=B:Y=1
190 IF T>M THEN 260
200 C=RND(1)
210 FOR J=N TO 1 STEP -1
220 IF C<=B(S,J) THEN 240
230 IF J=N THEN T=T+1:Y=Y+V*W(S):GOTO 180 ELSE V=V*SNG(A(S,J+1)):S=J+1:GOTO 200
240 NEXT J
250 V=V*SGN(A(S,l)):S=1:GOTO 200
260 X=Y/M
270 PRINT "КОРЕНЬ    ";B;" - ГО УРАВНЕНИЯ X=";X
280 END
24K
10 июня 2007 года
&gt;DiN&lt;
38 / / 08.06.2007
Может легче с нуля задучу решать, напиши условие.
Лично Бейсик уже не помню
257
10 июня 2007 года
kosfiz
1.6K / / 18.09.2005
помоему приведенный здесь код из учебника "Численные методы"(автор Заварыкин) и нетрудно заметить
[quote=FISH.ka]
 
Код:
20 REM ВЫЧИСЛЕНИЯ КОРНЯ СИСТЕМЫ ЛИНЕЙНЫХ
УРАВНЕНИЙ
[/quote]
что служит он для нахождений корней СЛАУ. поэтому автор обращаюсь к тебе со следующим: гугл тебе точно поможет(http://www.google.com/search?client=opera&rls=en&q=%D0%92%D0%AB%D0%A7%D0%98%D0%A1%D0%9B%D0%95%D0%9D%D0%98%D0%AF+%D0%9A%D0%9E%D0%A0%D0%9D%D0%AF+%D0%A1%D0%98%D0%A1%D0%A2%D0%95%D0%9C%D0%AB+%D0%9B%D0%98%D0%9D%D0%95%D0%99%D0%9D%D0%AB%D0%A5+%D0%A3%D0%A0%D0%90%D0%92%D0%9D%D0%95%D0%9D%D0%98%D0%99+pascal&sourceid=opera&ie=utf-8&oe=utf-8) и вот еще (http://sources.ru/wiki/doku.php?id=pascal:solution_of_slae), да и на форуме такой вопрос вроде уже поднимался.
9.8K
10 июня 2007 года
FISH.ka
35 / / 07.01.2007
да от туда, это мне препод практику задал, сказал переделать. а я в basice полный "0", а практику надо как-то получать!
257
10 июня 2007 года
kosfiz
1.6K / / 18.09.2005
будет примерно так(сам я basic знаю плохова-то, поэтому могут быть ошибки):
Код:
uses crt;

  function SGN(a: real): integer;
  begin
    if a > 0 then
      SGN := 1;
    if a = 0 then
      SGN := 0;
    if a < 0 then
      SGN := -1;
  end;

var
  a:    array[1..20, 1..21] of real;
  b:    array[1..20, 1..20] of real;
  w:    array[1..20] of real;
  n, d, m, t, s: byte;
  i, j: word;
  x, c, v, y: real;
label
  label1, label2, label3;
begin
  v := 0;
  writeln('vvedite poradok system');
  readln(n);
  writeln('vvedite coeffs');
  for I := 1 to N do
  begin
    readln(A[I, I]);
    B[I, I] := ABS(A[I, I]);
    for J := 2 to N do
    begin
      readln(A[I, J]);
      B[I, J] := B[I, J - I] + ABS(A[I, J]);
    end;
    readln(A[I, N + 1]);
  end;
  readln;
  for I := 1 to N do
    W := A[I, N + 1] / (1 - B[I, N]);
  writeln('vvedite nomer uravnenia');
  readln(d, m);
  T   := 1;
  Y   := 0;
  label2:
    S := d;
  Y   := 1;
  if T > M then
    goto label1;
  label3:
    C := random(1);
  for J := N downto 1 do
  begin
    if C <= B[S, J] then
      continue;
    if J = N then
    begin
      T := T + 1;
      Y := Y + V * W;
      goto label2;
    end
    else
    begin
      V := V * SGN(A[S, J + 1]);
      S := J + 1;
      goto label3;
    end;
  end;
  V := V * SGN(A[S, 1]);
  S := 1;
  goto label2;
  label1:
    X := Y / M;
  writeln('coren    ', d, ' - go uravnenia X=', X);
  readln;
end.

а еще мог вполне где-нибудь допустить ошибку особенно в использовании меток: уж больно много их.

можешь еще в сети поискать что-нибудь вроде bas2pas или bas2c, bas2cpp может найдешь нужный тебе конвертер.
9.8K
11 июня 2007 года
FISH.ka
35 / / 07.01.2007
Вроде все нормально с кодом, но почему-то вводит неогранниченное количество коеффициентов уравнений!
257
11 июня 2007 года
kosfiz
1.6K / / 18.09.2005
у меня с вводом коэффициентов нормалек: ввожу, например, n=2 и потом 6 коэффициентов, потом номер уравнения и M, после чего должен вывестись ответ. правда что-то скажем на том же basic'е мне какую-то чушь выдает.
проверь правильно ли ты код программы переписал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог