1

Тема: переведення коду з однієї мови на іншу

з паскаля на С , паскаль не знаю , а код потрібен

var
  s: string;
  i, back: integer;
begin
  s := 'aga not non stop begin end assa';

  i := 1;
  while i <= length(s) do begin
    while(i <= length(s)) and (s[i] = ' ') do inc(i);
    if i <= length(s) then begin
      back := i;
      while(i<=length(s)) and (s[i] <> ' ') do inc(i);
      if s[back] = s[i - 1] then writeln(copy(s, back, i - back));
    end;
  end;
end.

2

Re: переведення коду з однієї мови на іншу

Програма друкує всі слова (слово - довільна послідовність символів серед яких нема пробілу) в стовпчик. Тепер вам залишається написати таку саму на C.


P.S. Я теж паскаля не знаю, як і C, тому перекладу на Python:

import re
s = 'aga not non stop begin end assa'
print re.sub(' +', '\n', s)

3

Re: переведення коду з однієї мови на іншу

Перекладати з мову на мову в загальному випадку складніше, ніж писати з нуля за умовою.
Хоча є і автоматичні перекладачі, хоча їхній код вам, швидше за все, не сподобається.

4

Re: переведення коду з однієї мови на іншу

koala написав:

Перекладати з мову на мову в загальному випадку складніше, ніж писати з нуля за умовою.

Всього лише на константу складніше. :) Просто додається крок - зрозуміти що робить оригінальна програма, але я це вже зробив, залишилось написати код на C, але топікстартер стверджував що це вміє.

5 Востаннє редагувалося koala (13.01.2014 09:17:42)

Re: переведення коду з однієї мови на іншу

bunyk написав:

Просто додається крок - зрозуміти що робить оригінальна програма

В такому разі на C ще легше:

#include <stdio.h>
void main(void)
{
  printf("aga\nnot\nnon\nstop\nbegin\nend\nassa");
}

Чи все ж треба не те, що робить оригінальна програма, а виконати певне завдання, під яке оригінальна програма писалася?

6

Re: переведення коду з однієї мови на іншу

tarasvladyka написав:

з паскаля на С , паскаль не знаю , а код потрібен

Прихований текст
var
  s: string;
  i, back: integer;
begin
  s := 'aga not non stop begin end assa';

  i := 1;
  while i <= length(s) do begin
    while(i <= length(s)) and (s[i] = ' ') do inc(i);
    if i <= length(s) then begin
      back := i;
      while(i<=length(s)) and (s[i] <> ' ') do inc(i);
      if s[back] = s[i - 1] then writeln(copy(s, back, i - back));
    end;
  end;
end.
Прихований текст

з паскаля на С

Дякую, що вказали з якої мови потрібно перевести.

паскаль не знаю

Вибачте за грубість, але якщо ви Pascal не знаєте, навіщо вам код на С?
Просто з цікавості, де ви взяли цей код?

а код потрібен

Ну, якщо потрібен, можливо ви вже щось самі намагались зробити, продемонструйте будь-ласка, можливо в вас виникли якісь питання? Запитуйсте, не соромтесь.