
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
Void main()
{
char str[100];
setlocale(LC_ALL,"Rus");
gets(str);
OemToChar(str,str);
Zadacha21(str,strlen(str));
puts(str);
getch();
}
22. С клавиатуры вводится строка длиной N, 2<N<100. Заменить прописные латинские символы на 'p', а заглавные на 'Z'. Результат вывести на экран. Результат вывести на экран.
zadacha22 PROC C simbol:DWORD, len: DWORD
mov esi, simbol
xor ecx, ecx
.WHILE ecx < len
xor eax, eax
mov al, [esi]
.IF al >= 'a' && al<= 'z'
mov al,'p'
.ELSEIF al >= 'A' && al <= 'Z'
mov al,'Z'
.ENDIF
mov [esi],al
inc esi
inc ecx
.ENDW
ret
zadacha22 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha22(char* str,int len);
Void main()
{
char str[100];
setlocale(LC_ALL,"Rus");
gets(str);
OemToChar(str,str);
Zadacha22(str,strlen(str));
puts(str);
getch();
}
23
24. С клавиатуры вводится строка длиной N, 2<N<100. Заменить подстроки 'abc' на 'xyz'. Результат вывести на экран.
zadacha24 PROC C simbol:DWORD, len: DWORD
mov esi, simbol
xor ecx, ecx
add ecx,2
.WHILE ecx < len
xor eax, eax
mov al, [esi]
mov bl, [esi+1]
mov dl, [esi+2]
.IF al=='a' && bl =='b' && dl == 'c'
mov al, 'x'
mov bl, 'y'
mov dl, 'z'
mov [esi],al
mov [esi+1],bl
mov [esi+2],dl
.ENDIF
inc esi
inc ecx
.ENDW
ret
zadacha24 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha24(char* str,int len);
Void main()
{
char str[100];
setlocale(LC_ALL,"Rus");
gets(str);
OemToChar(str,str);
Zadacha24(str,strlen(str));
puts(str);
getch();
}
25. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Найти сумму всех двухзначных чисел. Результат вывести на экран.
zadacha25 PROC C arr:DWORD, n:DWORD
mov esi, arr
xor ecx,ecx
xor ebx, ebx
.WHILE ecx < n
mov eax,[esi]
test eax,eax
jns p
mul andef
p:
xor ebx, ebx
.WHILE eax > 0
xor edx, edx
div ten
inc ebx
.ENDW
.IF ebx == 2
mov eax,[esi]
add summ, eax
.ENDIF
add esi, 4
inc ecx
.ENDW
mov eax, summ
ret
zadacha25 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha25(int* arr, int n);
Void main()
{
int arr[100],i=0,n=0;
setlocale(LC_ALL,"Rus");
printf("введите размер массива: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("\n%d элемент = ",(i+1));
scanf("%d",&arr[i]);
}
printf("\n\nМассив:\n");
for(i=0;i<n;i++) printf("%d\t",arr[i]);
printf("\n\nСумма всех двухзначных = %d",zadacha25(arr,n));
getch();
}
26. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Увеличить каждый элемент массива на число, равное порядковому номеру элемента. Результат вывести на экран.
zadacha26 PROC C arr:DWORD, n:DWORD
mov esi, arr
xor ecx,ecx
.WHILE ecx < n
mov eax,[esi]
add eax,ecx
inc eax
mov [esi], eax
add esi, 4
inc ecx
.ENDW
ret
mov eax,1
ret
zadacha26 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha25(int* arr, int n);