Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2011, 03:21   #1
Yura139
 
Регистрация: 20.09.2011
Сообщений: 3
По умолчанию Потрібно перевести програму з паскаля на С

Код:
program Project2;
{$APPTYPE CONSOLE}
Const
R: array[1..13] of String[2] = ('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');
A: array[1..13] of Integer = (1,4,5,9,10,40,50,90,100,400,500,900,1000);

function roman(N : Integer) : String;
var  i : Integer;
 begin
 result := '';
 i := 13;
 while N > 0 do
 begin
   while A[i] > N
   do dec(i);
   result := result + R[i];
   dec(N, A[i]);
   writeln (result);
 end;
 roman := result;
end;

function arabic(S : String) : Integer;
var i, p : Integer;
begin
  arabic := -1;
  result := 0;
  i := 13;
  p := 1;
  while p <= length(S) do
  begin
    while copy(S, p, Length(R[i])) <>R[i] do
    begin
      dec(i);
      if i = 0
        then exit;
    end;
    result := result + A[i];
    p := p + length(R[i]);
  end;
  if roman(result) = S
    then arabic := result
end;

Var N, Err : Integer;
    S : String;
begin
 repeat
   write ('vvedit chuslo arabskumu chuframu chu rumskimi ');
   readLn(S);
   if S = ''
    then break;
   val(S, N, Err);
   if Err = 0
    then writeLn('rumske chuslo ', roman(N))
    else writeLn('ararbske chuslo ',Arabic(S));
  until false;
end.



Знизу що я скину це я пробував перетворювати але не виходить

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char R[][3]= {"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
int A[] = {1,4,5,9,10,40,50,90,100,400,500,900,1000};

char * roman(int N)
{
	int  i;
	char *r, result[1];

	i = 13;
	while (N > 0)
	{
   	while (A[i] > N)
   		i--;
   	
		strcat(result, R[i]);
   	N-=A[i];
   	printf ("%s\n",result);
 	}
 	
 	r=result;
 	
 	return r;
}

int arabic(char * S)
{
	int i, p;
	char result[1];
  i = 13;
  p = 1;
  
  while (p <= strlen(S))
  {
    while ( strncmp(S+p, R[i], strlen(R[i])) !=0 )
    {
      i--;
      if (i == 0)
        return 0; // тут тре подумати
    }
   // strcat(*result,(A[i])); // хз як
    p += strlen(R[i]);
  }
  
  if (roman(*result) == *S)
    return result;
    
	return -1;
}

int main(){
int N, Err ;
char S ;
 
do
   puts ('vvedit chuslo arabskumu chuframu chu rumskimi ');
   scanf("%c",S);
   if (S = '')
     break;
   val(S, N, Err);
   if (Err = 0)
    printf("rumske chuslo %d", roman(N))
    else printf("ararbske chuslo %c",Arabic(S));
  while(!false);	
}

___________
1) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

2) Кросспостинг (создание одинаковых тем и сообщений) запрещён правилами форума!


Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.12.2011 в 08:59.
Yura139 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести 1 строчку из паскаля на си++ Drago56 Помощь студентам 1 19.12.2010 11:25
Народ, перевести программу с паскаля на с++ Janefan Помощь студентам 0 11.05.2010 18:29
переделать програму с паскаля на дельфи jusic Помощь студентам 2 07.05.2010 12:47
нужно перевести программу с Паскаля на С SweetDream Помощь студентам 4 24.04.2010 17:51
Нужно перевести с Паскаля на с++ megavolt91 Фриланс 6 26.05.2009 00:14