Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Johnlion
63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666

Как более профессионально написать код?

10.11.2013, 01:08. Показов 596. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу код, который в цикле вычисляет значение Z, но использую много регистров, код не маленький. подскажите, пожалуйста, как бы вы решили эту задачу? если можно, то приведите примеры кода, просто хочу научиться граммотно писать программы

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2013, 01:08
Ответы с готовыми решениями:

Использование IO. Профессионально ли написан код
Посмотрите, как профессионально написан код ? :popcorn: class XAreaProject{ public static void Main(){ ...

как можно более просто написать эту программку(более понятным языком для начинающего)
7. Установить, четным или нечетным является число цифр в записи данного натурального числа. Если число цифр нечетно, вывести среднюю цифру....

Можно ли написать этот код более компактно?
#include <iostream> #include <cmath> using namespace std; void main() { int x, y; cout << "input x = "; cin >> x; cout...

3
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
10.11.2013, 06:13
Johnlion,
нарушение правил форума
Запреты и ограничения
18. Запрещено размещать задания в виде картинок и других файлов с их текстом.
Очень сложно воспользоваться форумным редактором формул? И очень сложно вставить в сообщение текст программы, которая "в цикле вычисляет значение Z, но использует много регистров"? Зачем кому-то проделывать твою работу заново? Ведь "код не маленький"
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
10.11.2013, 10:47
мне тоже лень было писать на асме

набрал на c++ такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    int X[]={0,1,2,3,4,5,6,7,8,9},
        N=10,
        Z=0;
 
    for (int k = 0; k < N; k++)
    {
        Z += (k+1)*X[N-k] - X[N+1-k]/(k+1+X[k]);
    }
    return Z;
}
на что студия ответила следующими словами:
Assembler
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
; Listing generated by Microsoft (R) Optimizing Compiler Version 17.00.60610.1 
 
    TITLE   c:\Users\SH2EZO\documents\visual studio 2012\Projects\TestSolution\TestSolution\Test0.cpp
    .686P
    .XMM
    include listing.inc
    .model  flat
 
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
 
PUBLIC  _main
; Function compile flags: /Ogsp
; File c:\users\sh2ezo\documents\visual studio 2012\projects\testsolution\testsolution\test0.cpp
;   COMDAT _main
_TEXT   SEGMENT
_X$ = -44                       ; size = 40
_main   PROC                        ; COMDAT
 
; 3    : {
 
    push    ebp
    mov ebp, esp
    sub esp, 44                 ; 0000002cH
    push    ebx
    push    esi
    push    edi
 
; 4    :    int X[]={0,1,2,3,4,5,6,7,8,9},
 
    xor edi, edi
    mov DWORD PTR _X$[ebp], edi
    mov DWORD PTR _X$[ebp+4], 1
    mov DWORD PTR _X$[ebp+8], 2
    mov DWORD PTR _X$[ebp+12], 3
    mov DWORD PTR _X$[ebp+16], 4
    mov DWORD PTR _X$[ebp+20], 5
    mov DWORD PTR _X$[ebp+24], 6
    mov DWORD PTR _X$[ebp+28], 7
    mov DWORD PTR _X$[ebp+32], 8
    mov DWORD PTR _X$[ebp+36], 9
 
; 5    :        N=10,
; 6    :        Z=0;
; 7    : 
; 8    :    for (int k = 0; k < N; k++)
 
    mov ecx, edi
    lea ebx, DWORD PTR _X$[ebp+40]
$LL3@main:
 
; 9    :    {
; 10   :        Z += (k+1)*X[N-k] - X[N+1-k]/(k+1+X[k]);
 
    mov eax, DWORD PTR _X$[ebp+ecx*4]
    inc eax
    lea esi, DWORD PTR [ecx+1]
    add ecx, eax
    mov eax, DWORD PTR [ebx+4]
    cdq
    idiv    ecx
    mov ecx, DWORD PTR [ebx]
    imul    ecx, esi
    lea ebx, DWORD PTR [ebx-4]
    sub ecx, eax
    add edi, ecx
    mov ecx, esi
    cmp ecx, 10                 ; 0000000aH
    jl  SHORT $LL3@main
 
; 11   :    }
; 12   :    return Z;
 
    mov eax, edi
    pop edi
    pop esi
    pop ebx
 
; 13   : }
 
    leave
    ret 0
_main   ENDP
_TEXT   ENDS
END
вот так
0
 Аватар для Johnlion
63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666
10.11.2013, 20:57  [ТС]
Mikl___, sh2ezo, посмотрите Как сделать, что учитывались остатки, помещенные в edx? тут я скинул код задания и еще один вопрос добавился
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2013, 20:57
Помогаю со студенческими работами здесь

Можно ли написать более оптимальный код, используя цикл while?
собственно сабж. #include &lt;iostream&gt; using namespace std; int main() { int x, y, s, step = 1; cout &lt;&lt;...

Можно ли написать более оптимальный или простой код, используя цикл for?
собственно сабж. #include &lt;iostream&gt; using namespace std; int main() { int sum, count, ost; for (count = 0;...

Как профессионально бы назначение звучало?
Как в терминологии программирования правильно зовутся такие вещи: Иногда надо работать с большим файлом, чей объём привосходит...

Как научиться профессионально восстанавливать информацию с поврежденных носителей
Хочу научится мастерству восстановления информации, но инф по теме в сети не так уж много( Обращаюсь к отцам дела(думаю здесь есть...

Как профессионально сообщить пользователю что nickname не уникальный и надо ввести другой?
Предположим на страничке есть поле input text. Его значение должно быть уникальным в системе. Ответ ajax запроса свидетельствует что...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru