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

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

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