Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 08.01.2022
Сообщений: 67
1

В среде Lazarus создать проект для вычисления выражений (работа с целыми числами) с использованием языка программировани

07.04.2022, 20:38. Показов 1240. Ответов 3

Author24 — интернет-сервис помощи студентам
В среде Lazarus создать проект для вычисления выражений (работа с целыми числами) с использованием языка программирования Assembler во вставках:
asm
//код
end;

Вычислить выражения:

1) найти сумму s=1*k+2*k+3*k+...+k*k, где к = 20;

2) найти сумму s=k+k2+k3+k4+k5, где к = 20;

3) найти сумму элементов массива длины k, где к = 20, массив заполнить случайными числами;

4)* найти минимальный и максимальный элемент массива длины k, где к = 20, массив заполнить случайными числами.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2022, 20:38
Ответы с готовыми решениями:

Проект для вычисления арифметических выражений (работа с целыми числами)
В среде Lazarus создать проект для вычисления арифметических выражений (работа с целыми числами) с...

Проект для вычисления арифметических выражений (работа с целыми числами)
В среде Lazarus создать проект для вычисления выражений (работа с целыми числами) с использованием...

Проект для вычисления арифметических выражений (работа с целыми числами)
В среде Lazarus создать проект для вычисления выражений (работа с целыми числами) с использованием...

Создать класс для работы с целыми числами любой длины
Создать класс для работы с целыми числами любой длинны. Основные операции +, -

3
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
08.04.2022, 00:28 2
Вот первый пункт в качестве примера
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
 var s:integer;
begin
  asm
    mov s,0
    mov rcx,20
    @l1:
    mov rax,20
    mul rcx
    add s,rax
    loop @l1
  end;
  showmessage(inttostr(s));
end;
0
AzAtom
26.04.2022, 11:25
  #3
 Комментарий модератора 
Yana kr, не нужно создавать несколько тем с одним и тем же вопросом. Можете напомнить о своей теме, написав в уже созданную тему.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33028 / 21328 / 8190
Регистрация: 22.10.2011
Сообщений: 36,638
Записей в блоге: 9
26.04.2022, 16:53 4
Лучший ответ Сообщение было отмечено Yana kr как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
const
  k = 20;
var
  arr : array[1 .. k] of integer;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  st : string;
  sum : integer;
  i : integer;
  v_min, v_max : integer;
begin
  asm
    push rax
    push rbx
    push rcx
 
    xor eax, eax
    mov ecx, k
    mov ebx, ecx
  @@L1:
    add eax, ebx
    add ebx, k
    loop @@L1
 
    mov [sum], eax
 
    pop rcx
    pop rbx
    pop rax
  end;
  ShowMessage(Format('#1: sum = %d', [sum]));
 
  asm
    push rax
    push rbx
    push rcx
 
    xor eax, eax
    mov ecx, 5
    mov ebx, k
  @@L2:
    add eax, ebx
    imul ebx, k
    loop @@L2
 
    mov [sum], eax
 
    pop rcx
    pop rbx
    pop rax
  end;
  ShowMessage(Format('#2: sum = %d', [sum]));
 
  st := '';
  for i := 1 to k do
  begin
    arr[i] := random(100);
    st := st + IntToStr(arr[i]) + ' ';
  end;
 
  asm
    push rax
    push rcx
    push rdi
 
    xor eax, eax
    mov ecx, k
    mov edi, offset arr
  @@L1:
    add eax, word ptr [edi]
    add edi, 4
    loop @@L1
 
    mov [sum], eax
 
    pop rdi
    pop rcx
    pop rax
  end;
  ShowMessage(Format('#3: array = %s, sum = %d', [st + sLineBreak, sum]));
 
  asm
    push rax
    push rbx
    push rcx
    push rdx
    push rdi
 
    xor eax, eax // sum <- 0
    mov ecx, k
    mov edi, offset arr
    mov ebx, word ptr [edi] // max <- первый элемент массива
    mov edx, ebx            // min <- первый элемент массива
 
  @@L1:
    mov eax, word ptr [edi]
    cmp eax, ebx // сравниваем очередной элемент с максимальным
    jle @@L2 // если очередной меньше или равен максимуму - переходим к проверке минимального
    mov ebx, eax
 
  @@L2:
    cmp eax, edx // сравниваем очередной элемент с минимальным
    jge @@L3 // если очередной больше или равен минимальному - переходим к концу цикла
    mov edx, eax
 
  @@L3:
    add edi, 4
    loop @@L1
 
    mov [v_max], ebx
    mov [v_min], edx
 
    pop rdi
    pop rdx
    pop rcx
    pop rbx
    pop rax
  end;
  ShowMessage(Format('#4: array = %s,min = %d max = %d', [st + sLineBreak, v_min, v_max]));
 
end;
1
26.04.2022, 16:53
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2022, 16:53
Помогаю со студенческими работами здесь

Создать класс LongLong для работы с целыми числами из 64 бит
Создать класс LongLong для работы с целыми числами из 64 бит. Число должно быть представлено двумя...

Создать класс LongLong для работы с целыми числами из 64 бит - C++
Добрый вечер,вот задание: Создать класс LongLong для работы с целыми числами из 64 бит. Число...

Создать класс LongLong для работы с целыми числами из 64 бит
разработать класс с нужным числом членов, содержащий, помимо указанных в задании, следующие методы:...

Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами
Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами, используя для...

Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами!
Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами, используя для...

Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами
Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами, используя для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru