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

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

  1. DoctorChe

    DoctorChe Гость

    Здравствуйте!
    Помогите пожалуйста перевести перевести код из С в Паскаль. В С никак не шарю...
    Заранее спасибо.
    Код (C++):
    /* В заданном предложении найти пару слов, из которых одно

    является обращением другого */


    #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 Гость

    Добрые люди помогли. Есть код на Delphi.
    Но по заданию необходимо на Паскале сделать. И потом еще задания по программе выполнять.
    Можете поправить пожалуйста на Паскаль. Очень надо.
    Код (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.243
  2. marik22222
    Ответов:
    1
    Просмотров:
    1.205
  3. ClockRu
    Ответов:
    0
    Просмотров:
    1.255
  4. GoldenYear
    Ответов:
    0
    Просмотров:
    1.167
  5. Ластик
    Ответов:
    3
    Просмотров:
    1.483

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