
- •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()
{
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]);
zadacha8(arr,n);
printf("\nРезультат:\n");
for(i=0;i<n;i++) printf("%d\t",arr[i]);
getch();
}
9. С клавиатуры вводится строка длиной N, 2<N<100. Заменить каждый символ латинского алфавита на символ, идущий следующим в алфавите. Символы 'z' и 'Z' не заменять. Результат вывести на экран.
zadacha9 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 <= 'y'
inc al
.ENDIF
.IF al >= 'A' && al <= 'Y'
inc al
.ENDIF
mov [esi],al
inc esi
inc ecx
.ENDW
ret
zadacha9 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha9(char* str,int len);
Void main()
{
char str[100];
setlocale(LC_ALL,"Rus");
gets(str);
OemToChar(str,str);
Zadacha9(str,strlen(str));
puts(str);
getch();
}
10. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Обнулить все элементы большие, чем средний элемент массива. Результат вывести на экран.
zadacha10 PROC C arr:DWORD, n:DWORD
mov esi, arr
mov eax, n
dec eax
xor edx,edx
div two
mul ct
add esi, eax
mov ebx,[esi]
mov esi, arr
xor ecx, ecx
.WHILE ecx < n
mov eax,[esi]
cmp ebx,eax
jge p
xor eax,eax
mov [esi],eax
p:
add esi,4
inc ecx
.ENDW
ret
zadacha10 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern int zadacha10(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]);
zadacha10(arr,n);
printf("\nРезультат:\n");
for(i=0;i<n;i++) printf("%d\t",arr[i]);
getch();
}
11. С клавиатуры вводится строка длиной N, 2<N<100. Удалить в строке все знаки препинания и пробелы. Результат вывести на экран.
zadacha11 PROC C simbol:DWORD, len: DWORD
mov esi, simbol
xor ecx, ecx
.WHILE ecx < len
xor eax, eax
mov al, [esi]
.IF al == ' ' || al == ',' || al == '.' || al == ';' || al == '!' || al == '?'
mov ebx, ecx
.WHILE ebx < len
mov al,[esi + 1]
mov [esi], al
inc ebx
inc esi
.ENDW
mov esi, simbol
add esi, ecx
mov eax, len
dec eax
mov len, eax
jmp stop
.ENDIF
inc esi
inc ecx
stop:
.ENDW
ret
zadacha11 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha11(char* str,int len);
Void main()
{
char str[100];
setlocale(LC_ALL,"Rus");
gets(str);
OemToChar(str,str);
Zadacha11(str,strlen(str));
puts(str);
getch();
}
12. С клавиатуры вводится строка длиной N, 2<N<100. Удалить в строке все латинские прописные символы. Результат вывести на экран.
zadacha12 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 ebx, ecx
.WHILE ebx < len
mov al,[esi + 1]
mov [esi], al
inc ebx
inc esi
.ENDW
mov esi, simbol
add esi, ecx
mov eax, len
dec eax
mov len, eax
jmp stop
.ENDIF
inc esi
inc ecx
stop:
.ENDW
ret
zadacha12 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha12(char* str,int len);