0 / 0 / 0
Регистрация: 07.04.2013
Сообщений: 9
1

while цикл

10.04.2013, 15:34. Показов 8583. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Переписываю код с С -ответ выдает 655, а правильно 715. Где может быть ошибка?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
main()
{      
 int i = 65, sk = 40;
 while ( i >= 40 ) 
     {  
         sk++;
         sk = sk + i;
         i--;
     }
 sk = sk / 2;
 printf ("%d", sk);
 getch();
}

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
global _main
extern _printf
              section .data
format: db '%d',10,0
i: dd 65
sk: dd -40
               section .text
_main:
        mov edi, [i]
        mov eax, [sk]
wh: cmp edi, 40
       jle end
       inc eax
       add eax, edi
       dec edi
       jmp wh
end: mov ecx, 2
     cdq
     idiv ecx
 
push eax
push dword format
call _printf 
add esp, 8
mov eax, 0
ret
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2013, 15:34
Ответы с готовыми решениями:

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...

Цикл с предусловием, цикл с постусловием и цикл с параметром
Объясните пожалуйста как делать эти циклы. У меня не получается. Можете сделать как на фото, или на...

Цикл: Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20
Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20. Возведение в степень в...

Как реализовать бесконечный цикл While, но чтобы этот цикл не грузил процессор?
Допустим есть цикл: while (1) { ... } Как сделать так, чтобы бесконечный цикл не...

9
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
10.04.2013, 15:41 2
Цитата Сообщение от sae Посмотреть сообщение
sk: dd -40
Это у Вас прикол такой? Минус в ассемблерном коде приписывать?
0
0 / 0 / 0
Регистрация: 07.04.2013
Сообщений: 9
10.04.2013, 15:46  [ТС] 3
ну ладно убрал, ответ не верным остается.
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
10.04.2013, 15:51 4
Цитата Сообщение от sae Посмотреть сообщение
ну ладно убрал
Это Вы кому одолжение сделали?
Цитата Сообщение от sae Посмотреть сообщение
ответ не верным остается
Отладчик в помощь.
0
6765 / 2736 / 383
Регистрация: 17.02.2013
Сообщений: 4,042
11.04.2013, 17:26 5
Если одну букву из ассемблерного исходника убрать, то ошибка исправится.
0
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
11.04.2013, 23:08 6
Цитата Сообщение от Ethereal Посмотреть сообщение
Если одну букву из ассемблерного исходника убрать, то ошибка исправится.
бегло просмотрел какую тут одну можно букву убрать без ошибок. idiv?
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.04.2013, 09:34 7
Цитата Сообщение от Fatal Error Посмотреть сообщение
бегло просмотрел какую тут одну можно букву убрать без ошибок. idiv?
Нет, тут signed int'ы. И если бы надо было div, тогда ещё надо было бы xor вместо cdq.
0
Ушел с форума
Автор FAQ
16262 / 7587 / 1061
Регистрация: 11.11.2010
Сообщений: 13,609
12.04.2013, 09:49 8
я думаю, что sk = sk / 2; должно соответствовать sar eax,1
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.04.2013, 12:58 9
Если точнее, то
Assembler
1
2
3
cdq
sub eax, edx
sar eax, 1
потому что у sar для отрицательных чисел округление в другую сторону получается.
1
6765 / 2736 / 383
Регистрация: 17.02.2013
Сообщений: 4,042
12.04.2013, 14:18 10
Цитата Сообщение от Fatal Error Посмотреть сообщение
бегло просмотрел какую тут одну можно букву убрать без ошибок. idiv?
Посмотри на условие цикла while.
0
12.04.2013, 14:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2013, 14:18
Помогаю со студенческими работами здесь

Цикл: Вычислить значение выражения. Как вывести формулу и сделать цикл while?
Последовательно вводятся N целых чисел. Найти минимальное из них. #include&lt;stdio.h&gt; ...

Цикл: Посчитать среднее арифметическое всех чисел в заданном диапазоне. Цикл while.
Напишите пожалуйста код для данной задачки с помощью цикла while Вывести числа в пользовательском...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста

Начать вложенный цикл не с первого элемента и по условию вернуться в основной цикл
Добрый день. На самом деле, проблема чуть шире, чем в названии топика. Есть цикл, в котором идёт...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru