
- •1) Найти сумму цифр трёхзначного числа
- •2) Дано четырёхзначное число. Вывести число, полученное при прочтении его цифр справа налево.
- •3) Дано четырёхзначное число. Определить является ли сумма двух его первых цифр сумме двух вторых.
- •4) Если сумма первых двух его цифр больше суммы его двух последних цифр, вывести сообщение «Больше», иначе «Меньше»
- •5) Найти максимальную цифру в записи четырёхзначного числа.
- •12) Указать символ для поиска. Ввести с клавиатуры строку символов. Вывести количество вхождений указанного символа в строке.
- •13) Ввести строку символов. Вывести ее в обратном порядке.
- •14) Ввести строку символов. Вывести строку, исключая буквы (латиницу).
- •15) Ввести две строки. Вывести совпадающие (по позициям и значениям) символы в двух строках.
- •21) Определить косинус угла
- •22) Определить длину окружности
- •23) Определить длину гипотенузы по двум катетам
- •24) Вычислить значение выражения (X-z)*(2x*z)
- •25) Вывести число пи с точностью до пятого знака
15) Ввести две строки. Вывести совпадающие (по позициям и значениям) символы в двух строках.
Опять же, вводим две строки. Далее, записываем первый элемент первой строки в al, первый элемент второй строки вah. Сравниваемah и alмежду собой, если равенство, выводим элемент на экран, если нет, переходим ко второму элементу и так далее пока не встретиться символ конца строки.
.model small
.386
.stack 256h
.data
str_1 db 10,0,10 dup ('$')
str_2 db 10,0,10 dup ('$')
str_3 db 0Ah,'$'
.code
input PROC
mov ah, 0Ah
int 21h
ret
input ENDP
output PROC
mov ah, 09h
int 21h
ret
output ENDP
start:
mov ax, @data
mov ds, ax
lea dx, str_1
call input
lea dx, str_3
call output
lea dx, str_2
call input
lea dx, str_3
call output
mov di,2
above:
xor ax,ax
cmp di, 10
jz exit
mov al, str_1[di]
mov ah, str_2[di]
cmp al, '$'
jz exit
cmp ah, '$'
jz exit
cmp al, ah
jz below
inc di
jmp above
below:
lea dx, str_1[di]
mov ah, 40h
mov cx, 1
int 21h
inc di
jmp above
;-------------------------------------------------
exit:
mov ah, 4ch
int 21h
end start
21) Определить косинус угла
#include "stdafx.h"
#include <iostream> //библиотека ввода-вывода
using namespace std; //объявление пространства имён std для cin.get() и cout
int main(int argc, _TCHAR* argv[])
{
int angle = 60; //угол в градусах
float div = 180; //эта цифра нужна, чтобы перевести градусы в радианы
float cos = 0; //переменная, где будет храниться косинус
//включаем блок встроенного ассемблера
__asm{
finit //приводит сопроцессор в начальное состояние
fild angle //наш угол на вершине стека сопроцессора
fldpi //pi на вершине стека сопроцессора
fmul //pi*угол
fdiv div //pi*угол/180(переводим в радианы)
fcos //cos угла
fstp cos //вытолкнуть в переменную cos содержимое вершины //стека сопроцессора (косинус угла)
}
cout<<cos; //вывод на экран результата
cin.get(); //задержка перед выходом до нажатия любой кнопки
return 0; //завершение программы
}
22) Определить длину окружности
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
float radius = 1;
float two = 2;
float lngth = 0;
__asm{
finit //приводит сопроцессор в начальное состояние
fld radius //на вершине стека сопроцессора радиус
fmul two //радиус * 2
fldpi //на вершине стека сопроцессора число пи
fmul //умножить радиус умноженный на 2, на пи
fst lngth1 //вытолкнуть в переменную lngth содержимое вершины стека сопроцессора (радиус*2*пи)
}
cout<<lngth;
cin.get();
return 0;
}
23) Определить длину гипотенузы по двум катетам
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
float cath_1 = 5;
float cath_2 = 3;
float hypo = 0;
__asm{
finit //приводит сопроцессор в начальное состояние
fld cath_1 //на вершине теперь первый катет
fmul st(0),st(0) //квадрат первого катета
fld cath_2//теперь в ST(0) второй катет, а квадрат первого в ST(1)
fmul st(0),st(0) //квадрат второго
fadd //складываем ST(0) и ST(1). Результат в ST(0) будет
fsqrt //берём корень из ST(0)
fst hypo //сохраняем результат в переменную
}
cout << hypo;
cin.get();
return 0;
}