Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
библиотеки.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
117.76 Кб
Скачать

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);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]