Помогите плиз с задачей

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by netzzz, 25 Jan 2008.

  1. netzzz

    netzzz Elder - Старейшина

    Joined:
    11 Aug 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Нужно в течение часа решить задачу, кто поможет с меня плюсенгов...

    Ввести строку, состоящую из одного слова, проверить будет ли оно читаться одинаково справа на лево и слева на право (т.е. является ли оно палиндромом). Исходную строку и ответ вывести на экран.
     
  2. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    Язык какой?
     
  3. netzzz

    netzzz Elder - Старейшина

    Joined:
    11 Aug 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    ой сорр асемблер
     
  4. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    Я помню у нас в универе на си такая задачка была- несложная...
    А на асме страниц 5 кода будет...)))
     
  5. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    пробуй
    Code:
    #include <conio.h>
    #include <stdio.h>
    void main()
    {char s1[100],s2[100]="";
    unsigned int ks1 = int(s1),ks2 = int(s2);
    unsigned int l,r;
    clrscr();
    gets(s1);
    asm{
      mov dx,0
      mov bx, ks1
      dec bx
      }
      l0:
    asm{
      inc bx
      mov cx, bx
      mov ah, [bx]
      cmp ah,0
      je fin
      mov al,[bx+1]
      cmp al,0
      je fin
      }
      l1:
    asm{
       mov al, [bx]
       cmp al, 32
       je l2a
       cmp al,0
       je l2a
       inc bx
       jmp l1
      }
      l2a:
    asm{
       push bx
       push cx
       dec bx
       mov r,bx
       mov l,cx
       push ax
      }
      l2a1:
    asm{
       mov bx,r
       mov cx,l
       mov ah,[bx]
       mov bx,cx
       mov al,[bx]
       cmp bx,cx
       jna l2a2
       cmp ah,al
       jne l2a2
       dec r
       inc l
       jmp l2a1
      }
      l2a2:
    asm{
       cmp ah,al
       jne l4
       pop ax
       cmp al,0
       je fin
       pop cx
       pop bx
       jmp l0
      }
      l4:
    asm{
      pop ax
      pop bx
      pop cx
      inc cx
      }
      l3:
    asm{
       push bx
       mov bx, ks2
       add bx,dx
       mov [bx],ah
       inc dx
       pop bx
       inc bx
       mov ah,[bx]
       cmp bx,cx
      jne l3
      dec bx
      cmp ah,0
      jne l0
      }
      fin:
    printf("%s",s2);
    }
    
    else
    http://phorum.key.ru/viewtopic.php?f=34&t=34754
    http://forum.woweb.ru/topic29962.html
    http://devoid.com.ua/functions-about/c-functions/strrev.html
    http://sourcecore.net/forums/viewtopic.php?p=4550&sid=cb5fdffbe787b000f206dd4b8a1af74c
    http://phorum.key.ru/viewtopic.php?t=32218
    http://kitnet.s42.asu.ru/www/olimp/asm/z3/z3.htm
    money
    http://foxweb.net.ru/files/?arc=1
     
    #5 gibson, 25 Jan 2008
    Last edited: 25 Jan 2008
    1 person likes this.
  6. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    На си если то вот как то так :)
    (криво но пашет- строка проверяется не до середины а в 2 стороны поностью - не оптимально! Зато быстро :))

    #include "stdio.h"
    #include "string.h"

    void main(int argc, char* argv[])
    {
    if(argc==1)
    {
    printf("USE: polindrom.exe string.\r\n");

    }
    else
    {
    char * str = argv[1];
    int i;
    int Sz=(strlen(str));

    for(i=0;i<=Sz;i++)
    {
    if(str!=str[(Sz-1)-i])
    {
    printf("Its not a polindrom :-(");
    return;
    }
    }
    printf("Its a polindrom :)");

    }
    }
     
    #6 spider-intruder, 25 Jan 2008
    Last edited: 25 Jan 2008
    2 people like this.
  7. netzzz

    netzzz Elder - Старейшина

    Joined:
    11 Aug 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    все всем спасибо сам решил .. приду на работу почитаю всем плюсенгов наставлю )))
     
  8. netzzz

    netzzz Elder - Старейшина

    Joined:
    11 Aug 2005
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    macr.inc