Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 12
1

Алгоритм «атомарной» функции, которая меняет местами верхние значения в двух стеках

29.06.2012, 15:59. Показов 984. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые, помогите найти ошибки в программе (если таковые есть - то исправьте плззз)
Ниже приведен алгоритм «атомарной» функции, которая меняет местами верхние значения в двух стеках. Если один из стеков пуст, то второй не должен изменяться. В функцию никогда не передаются указатели на один и тот же стек.

C
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
Void AtomicSwap(Stack *s1, Stack *s2) {
 
Int v1, v2, rez;
 
s1->lock.Acquire();
 
rez=s1->Pop(&v1);
 
if (rez==OK) {
 
s2->lock.Acquire();
 
rez=s2->Pop(&v2);
 
if (rez==OK) {
 
s2->Push(v1);
 
s1->Push(v2);
 
s2->lock.Release();
 
s1->lock.Release();
 
}
 
}
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2012, 15:59
Ответы с готовыми решениями:

Написать шаблон функции которая меняет местами значения двух переменных
Написать шаблон функции которая меняет местами значения двух переменных int и double Прошу помочь.

Описать функцию которая меняет местами значения двух параметров
Описать функцию которая меняет местами значения двух параметров. Используя эту функция поменять...

Написать функцию, которая меняет местами значения двух целых
Нужен рабочий код по решению задачи в С++ : «Напишите функцию которая меняет местами значения двух...

Написать программу, которая меняет местами значения двух переменных с использованием дополнительной переменной.
3. Написать программу, которая меняет местами значения двух переменных с использованием...

1
2304 / 1225 / 246
Регистрация: 16.03.2008
Сообщений: 5,840
Записей в блоге: 2
29.06.2012, 16:43 2
Отформатировать код было слабо?

1. стандартных типов Void и Int не существует. Если это намек на стандартные типы, а не ваши собственные типы. То это ошибка.
2. Если произойдет ошибка во время помещения v2. То s1 и s2 скорее всего остануться залочеными

Но это возможно не ошибки (правда второе если и не ошибка, то образец неправильного подхода) - надо знать весь код.
0
29.06.2012, 16:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2012, 16:43
Помогаю со студенческими работами здесь

Функция, которая меняет значения 2-х динамических массивов местами
Всем здравствуйте. Недавно начал изучать программирование на c++. Изучил тему динамических...

Составьте программу которая меняет местами значение переменных двух множеств
Составьте программу которая меняет местами значение переменных двух множеств.

Составить программу которая меняет местами значения типа char
Помогите с заданием я не понимаю что тут надо делать. Это я перевела с латышского языка на русский,...

Составить программу, которая меняет местами значения переменных a и b, введенных с клавиатуры
готовлюсь к олимпиаде вот задание Задание 1 Составить программу, которая меняет местами значения...


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

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