1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Перевести код из С в Pascal

Тема в разделе "Pascal and Delphi", создана пользователем DoctorChe, 16 фев 2011.

  1. DoctorChe

    DoctorChe Гость

    Репутация:
    0
    Здравствуйте!
    Помогите пожалуйста перевести перевести код из С в Паскаль. В С никак не шарю...
    Заранее спасибо.
    Код:
    /* В заданном предложении найти пару слов, из которых одно 
    
    является обращением другого */ 
    
    #include <stdio.h> 
    
    #include <string.h> 
    
    #define R ".,;:'\"()!?" /* символы - разделители */ 
    
    main() 
    
    { 
    
    char s[100],c[100],*p[50],*q; 
    
    int i=0,j,k,n,fl=0; 
    
    puts("\nВведите предложение"); 
    
    gets(s); /* ввод предложения */ 
    
    q=strtok(s,R); 
    
    while(q) /* разбиваем предложение на слова */ 
    
    { 
    
    p[i++]=q; 
    
    q=strtok(NULL,R); 
    
    } 
    
    for(j=0;j<i;j++) /* перебираем слова */ 
    
    for(k=j+1;k<i;k++) 
    
    { 
    
    if(!fl) /* проверка флага */ 
    
    { 
    
    for(n=0;n<strlen(p[k]);n++) /* переворачиваем слово */ 
    
    { 
    
    c[n]=*(p[k]+(strlen(p[k])-n-1)); 
    
    } 
    
    c[n]='\0'; 
    
    if(!strcmp(c,p[j])) /* если слова одинаковы, то выводим */ 
    
    { 
    
    puts("Ответ:"); 
    
    puts(p[j]); 
    
    puts(p[k]); 
    
    fl=1; /* устанавливаем флаг */ 
    
    } 
    
    } 
    
    } 
    
    if(!fl) puts("\nНет таких слов"); 
    
    }
     
  2. DoctorChe

    DoctorChe Гость

    Репутация:
    0
    Добрые люди помогли. Есть код на Delphi.
    Но по заданию необходимо на Паскале сделать. И потом еще задания по программе выполнять.
    Можете поправить пожалуйста на Паскаль. Очень надо.
    Код:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
    
    type
    TDelim=set of Char;
    TArrayOfString=Array of String;
    
    TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    
    var
    Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    function fcToParts(sString:String;tdDelim:TDelim):TArrayOfString; //функция разбора строки на слова
    var iCounter,iBegin:Integer;
    begin
    if length(sString)>0 then
    begin
    include(tdDelim,#0);
    iBegin:=1;
    SetLength(Result,0);
    For iCounter:=1 to Length(sString)+1 do
    begin
    if (sString[iCounter] in tdDelim) then
    begin
    SetLength(Result,Length(Result)+1);
    Result[Length(Result)-1]:=Copy(sString,iBegin,iCounter-iBegin);
    iBegin:=iCounter+1;
    end;
    end;
    end;
    end;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    StrArr:TArrayOfString;
    i,k,z:integer;
    s:string;
    zard :TDelim;
    t:char;
    begin
    zard:=[' ',',','.']; //разделители
    t:=edit1.Text[length(edit1.Text)]; //последний символ строки
    if not (t in zard) then edit1.Text:=Edit1.Text+' '; // если последний символ не разделитель то добавляем пробел
    StrArr:=fcToParts(edit1.Text,[' ',',','.']);
    for i:=1 to Length(StrArr) do
    begin
    s:='';
    for k:=length(StrArr[i]) downto 1 do
    begin
    s:=s+StrArr[i][k]; //переворачиваем слово
    end;
    if StrArr[i]=s then memo1.Lines.Add(StrArr[i]); // проверяем равенство, если ок то выводим в мемо
    end;
    
    end;
    
    end.
     
Загрузка...
Похожие Темы - Перевести код из
  1. Dimkawshm
    Ответов:
    3
    Просмотров:
    1.324
  2. marik22222
    Ответов:
    1
    Просмотров:
    1.357
  3. ClockRu
    Ответов:
    0
    Просмотров:
    1.353
  4. Елизавета017
    Ответов:
    0
    Просмотров:
    197
  5. GoldenYear
    Ответов:
    0
    Просмотров:
    1.719

Поделиться этой страницей