
- •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);
Zadacha12(str,strlen(str));
puts(str);
getch();
}
13. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Найти количество элементов массива, которые без остатка делятся на 3. Результат вывести на экран.
zadacha13 PROC C arr:DWORD, len: DWORD
mov esi, arr
xor ecx, ecx
xor ebx,ebx
.WHILE ecx < len
mov eax,[esi]
test eax,eax
jns p
mul andef
p:
xor edx,edx
div th
.IF edx == 0
inc ebx
.ENDIF
add esi,4
inc ecx
.ENDW
mov eax, ebx
ret
zadacha13 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha13(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Количество элементов кратных 3 = %d",zadacha13(arr,n));
getch();
}
14. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Обнулить все нечетные элементы массива большие 100. Результат вывести на экран.
zadacha14 PROC C arr:DWORD, len: DWORD
mov esi, arr
xor ecx, ecx
xor ebx,ebx
.WHILE ecx < len
mov eax,[esi]
test eax,eax
js p
.IF eax > 100
xor edx,edx
div two
.IF edx != 0
xor eax,eax
mov [esi],eax
.ENDIF
.ENDIF
p:
add esi,4
inc ecx
.ENDW
mov eax, ebx
ret
zadacha14 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha14(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]);
zadacha14(arr,n);
printf("\nРезультат:\n");
for(i=0;i<n;i++) printf("%d\t",arr[i]);
getch();
}
15. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Изменить порядок следования элементов массива на противоположный. Результат вывести на экран.
zadacha15 PROC C arr:DWORD, n: DWORD
mov esi, arr
mov edi, arr
mov eax, n
xor edx,edx
div two
mov ebx, eax
xor ecx, ecx
mov eax,n
mul ct
add edi,eax
sub edi, 4
.WHILE ecx < ebx
mov eax,[esi]
mov edx, [edi]
mov [esi],edx
mov [edi],eax
add esi, 4
sub edi, 4
inc ecx
.ENDW
ret
zadacha15 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha15(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]);
zadacha15(arr,n);
printf("\nРезультат:\n");
for(i=0;i<n;i++) printf("%d\t",arr[i]);
getch();
}
16. Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Умножить на 2 все элементы массива, в десятичной записи которых последняя цифра равна 5. Результат вывести на экран.
zadacha16 PROC C arr:DWORD, n: DWORD
mov esi, arr
xor ecx, ecx
.WHILE ecx < n
mov eax,[esi]
test eax, eax
jns p
mul andef
p:
xor edx, edx
div ten
.IF edx == 5
mov eax, [esi]
mul two
mov [esi],eax
.ENDIF
inc ecx
add esi, 4
.ENDW
ret
zadacha16 ENDP
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <locale.h>
extern void zadacha16(int* arr, int n);