powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите перевести код с pascal на basic
13 сообщений из 13, страница 1 из 1
Помогите перевести код с pascal на basic
    #33526261
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вот такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
program matrix; 
uses crt; 
const n= 2 ;
var 
mas:array[ 1 ..n, 1 ..n] of integer; 
i,j,p,curr:byte;
t:integer;
begin 
clrscr; 
for i:= 1  to n do 
begin 
for j:= 1  to n do 
begin 
write(i,'-я строка '  ,j, '-й столбец:');
readln(mas[i,j]);
end; 
end;
writeln;
for p :=  1  to n do begin

  curr :=  0 ;
  for i :=  1  to n do begin
    if mas[i, p] <  0  then begin

      T := mas[i, p];
      for j := i downto curr +  1  do
        mas[j, p] := mas[j -  1 , p];
      inc(curr);
      mas[curr, p] := T;
    end;
  end;
end;
for i:= 1  to n do
begin
for j:= 1  to n do
write(mas[i,j],' ');
writeln;
end;
readln;
end.
помогите перевести его в равнофункциональный на Basic
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33526642
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Besha помогите перевести в равнофункциональный на Basic
Basic'ов много. Например Visual Basic, VBA, Quick и пр. В который из них ?
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33526699
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turbo Basic 1.0
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33527366
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и в какой строчке проблема?
Тут элементарнейший код, на раз-два переводящийся студентом первокурсником.
По сути, не использовано ни одной фирменной фичи паскаля.
Пожалуй вся переделка будет связана с объявлением переменных и другим оформлением циклов. USES также не нужен. ВСЕ! Остальное перенводится построчно синонимами из бейсика, типа:
ClrScr -> CLS
Write -> Print
Read -> Input
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33527583
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема у меня не в строчке а вот в этом куске, а точнее с оформлением циклов на бейсике
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
for p :=  1  to n do begin

  curr :=  0 ;
  for i :=  1  to n do begin
    if mas[i, p] <  0  then begin

      T := mas[i, p];
      for j := i downto curr +  1  do  //особенно вот этого
        mas[j, p] := mas[j -  1 , p];
      inc(curr); 
      mas[curr, p] := T;
    end;
  end;
end;

как цикл for j:=i downto curr+1 do на бейсике выглядеть будет,
и еще заминочка вышла вот в этой строчке
inc(curr); //увеличивает переменную curr на единицу(если не ошибаюсь),
а в бейсике будет curr+1 вот так ,что ли или в бейсике есть аналог этой команды?
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33529163
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
for j=i to n+ 1  step - 1 
 ...
next j

curr=curr+ 1 
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33529897
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конвертировал программу с паскаля на бейсик, но как всегда без одного НО не обошлось, незапускаеться она, что я не так сделал вот, что у меня получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
cls
print "‚Введем масив A(4,3):"
print " "
let n= 2 
dim a(n,n)
for x= 1  to  2 
for y= 1  to  2 
print "A(";x;",";y;") = ";
input a(x,y)
next y
next x
cls
print " "
for p= 1  to n
for x= 1  to n
let curr= 0 
if a(x,p)< 0  then
let t=a(x,p)
for j=i to n+ 1  step - 1 
let a(y,p)=a(y- 1 ,p)
curr=curr+ 1 
let a(curr,p)=t
next j
end if
next p // for loop expected, вотута показывает баг
print "   "
for x= 1  to n
for y= 1  to n
print a(x,y);
next y
print " "
next x
Подскажите как мне ошибку исправить.
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33529937
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeshaПодскажите как мне ошибку исправить.Тебя не учили лесенкой записывать свои программы? Вот паскалевский вариант ты написал правильно, переформатируй свой бейсиковский код так же. Сразу увидишь ошибку.
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33530020
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Besha
cls
print "‚Введем масив A(4,3):"
print " "
let n=2
dim a(n,n)
Подскажите как мне ошибку исправить.
Вообще-то неработающую программу полагается отлаживать и тестировать.
Бери простейший логический кусок (наподобие приведенного выше) и запускай. Если ошибок нет, то добавляй по одной единственной строке (с циклами и условиями так не получится) и так продвигайся до конца, пока все не заработает. Во второй части программы у тебя цикл по X повис: ты его нигде не закрыл. Посмотри сам все внимательно. Процесс отладки вещь творческая -тебе должно понравиться. Главное не спеши, а анализируй каждую строку - что строка делает. Будет в результате более понятна логика работы программы.
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33530144
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На бейсике кодил только в школе, так что если ступлю - не пинайте. Смутило вот что:
- где-то есть разделители операторов (; после 2-x print), но большей частью их нет. смущает, если честно;
- "end if" - вот этого я совсем не помню из школьной программы
- в строке "for j=i to n+1 step -1" появляется i, которую я не вижу ранее, а хотесь бы, ибо от ее значения пляшет цикл. Надеемся на автоинициализацию в 0?
- ну и ранее уже напомнили про отсутствие "next x"
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33530172
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arniНа бейсике кодил только в школе, так что если ступлю - не пинайте. Смутило вот что: - где-то есть разделители операторов (; после 2-x print), но большей частью их нет. смущает, если честно; - "end if" - вот этого я совсем не помню из школьной программы - в строке "for j=i to n+1 step -1" появляется i, которую я не вижу ранее, а хотесь бы, ибо от ее значения пляшет цикл. Надеемся на автоинициализацию в 0? - ну и ранее уже напомнили про отсутствие "next x"
Такой конструкции, завершающей условие, ранее не было. Она появилась лет 7-8 назад. Мне нравится. Код при прочтении становится более определенным, хотя на исполнение это никак не влияет. Я думаю, если автор сей программы пройдется по ней пошагово, то сможет выявить ошибки и польза ему будет.
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33530415
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот отладил вроде как мог, но у меня получилось так, что матрица выводится в любом
случае
просто в перевернутом виде, причем если элементы второй строки не отридцательны то
вместо них выводятся нули т.е ввожу матрицу 1 1 , получаеться 0 0,
2 2 1 1
ввожу 1 1 , получаеться -2 -2
-2 -2 1 1
а на паскале у меня код выполняет сортировку таким образом, что если в столбце матрицы
встречается отридцательный элемент, то он перемещаеться вначало этого столбца, без изменения других элементов столбца(хотелось бы, что б на бейсике то же самое было).
Уже вродебы построчно сверял я паскалевский вариант кода выполняющий
сортировку с кодом на бейсике выполняющим такое действие, вродебы все ОК, но вот
почему поразному работает, может такая сортировка на бейсике имеет совсем другой
алгоритм??? Или я снова что то не так сделал(вродебы каждую строчку просмотрел)?

Код на бейсике после отладки

cls
print "Введем матрицу A(2 x 2):"
print " "
let n=2
dim a(n,n)
for x=1 to n
for y=1 to n
print "A(";x;",";y;") = ";
input a(x,y)
next y
next x
cls
print ""
for p=1 to n
let curr=0
for x=1 to n
if a(x,p)<0 then
let t=a(x,p)
end if
next x
for y=x to curr+1 step-1
let a(y,p)=a(y-1,p)
next y
let curr=curr+1
let a(curr,p)=t
print "Отсортированная матрица:"
print " "
next p
for x=1 to n
for y=1 to n
print a(x,y);
next y
print " "
next x
...
Рейтинг: 0 / 0
Помогите перевести код с pascal на basic
    #33530456
Besha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это небольшое пояснение к моему предыдущему ответу(к самому началу)
Вы не особо обращайте внимания на пример вводимой матрицы, и пример какую программа
выводит, я когда писал ответ,оформление матриц выглядело нормально, а после опубликования
поздвигалось все, как хотело :))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите перевести код с pascal на basic
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]