Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

25.01.2008, 11:40
|
|
Познающий
Регистрация: 11.08.2005
Сообщений: 38
Провел на форуме: 247533
Репутация:
4
|
|
Помогите плиз с задачей
Нужно в течение часа решить задачу, кто поможет с меня плюсенгов...
Ввести строку, состоящую из одного слова, проверить будет ли оно читаться одинаково справа на лево и слева на право (т.е. является ли оно палиндромом). Исходную строку и ответ вывести на экран.
|
|
|

25.01.2008, 11:46
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
Язык какой?
|
|
|

25.01.2008, 12:11
|
|
Познающий
Регистрация: 11.08.2005
Сообщений: 38
Провел на форуме: 247533
Репутация:
4
|
|
ой сорр асемблер
|
|
|

25.01.2008, 12:14
|
|
Banned
Регистрация: 19.12.2007
Сообщений: 924
Провел на форуме: 4192567
Репутация:
2145
|
|
Я помню у нас в универе на си такая задачка была- несложная...
А на асме страниц 5 кода будет...)))
|
|
|

25.01.2008, 12:20
|
|
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме: 2872049
Репутация:
705
|
|
пробуй
Код:
#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=cb5fdffbe787b000f206dd4b8 a1af74c
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
Последний раз редактировалось gibson; 25.01.2008 в 12:30..
|
|
|

25.01.2008, 12:21
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
На си если то вот как то так :-)
(криво но пашет- строка проверяется не до середины а в 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[i]!=str[(Sz-1)-i])
{
printf("Its not a polindrom :-(");
return;
}
}
printf("Its a polindrom :-)");
}
}
Последний раз редактировалось spider-intruder; 25.01.2008 в 12:29..
|
|
|

25.01.2008, 12:32
|
|
Познающий
Регистрация: 11.08.2005
Сообщений: 38
Провел на форуме: 247533
Репутация:
4
|
|
все всем спасибо сам решил .. приду на работу почитаю всем плюсенгов наставлю )))
|
|
|

25.01.2008, 12:35
|
|
Познающий
Регистрация: 11.08.2005
Сообщений: 38
Провел на форуме: 247533
Репутация:
4
|
|
.Model small
.stack 100h
include macr.inc
.data
f db "Введи слово",0ah,0dh,"$"
fn db "Не полиномы",0ah,0dh,"$"
fp db "Полиномы",0ah,0dh,"$"
rett db 0ah,0dh,"$"
s db " $"
p db 0
len dw 0
.code
jmp start
ASSUME ds:@data,es:@data
start:
init_dses
out_str f
in_str s
mov len,ax
mov di, offset s
mov si,di
add si,len
sub si,3
mov cx,len
sub cx,3
go: mov al,[si]
cmp [di],al
jne nepolinom
inc di
dec si
loop go
out_str fp
jmp exit
nepolinom:
out_str fn
exit:
int 27h
end start
macr.inc
init_ds macro
mov ax,@data
mov ds,ax
xor ax,ax
endm
init_dses macro
mov ax,@data
mov ds,ax
mov es,ax
xor ax,ax
endm
out_str macro st
push ax
mov ah,09h
mov dx,offset st
int 21h
pop ax
endm
clr macro rg
xor rg,rg
endm
in_str macro st
mov ah, 3fh
mov bx,0h
lea dx,st
mov cx,99
int 21h
endm
find_c macro len, st
; mov al,'&char'
cld
mov di,offset st
mov cx,len
repne scas st
endm
in_char macro char
push ax
mov ah,1h
int 21h
mov char,al
pop ax
endm
out_char macro char
push ax
mov ah,2h
int 21h
pop ax
endm
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|