КИТА unofficial
Ноябрь 22, 2024, 10:09:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1]   Вниз
  Печать  
Автор Тема: Искусство программирования (задача 8)  (Прочитано 10289 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« : Сентябрь 04, 2007, 02:47:33 »

Может и баян  Подмигивающий

Назовите функцию, которая возвращает два значения.
« Последнее редактирование: Сентябрь 14, 2007, 01:32:10 от vimmax » Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
tendervampire
Бакалавр
**

Карма: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 112


П.Б.Н.


« Ответ #1 : Сентябрь 04, 2007, 03:33:11 »

 С точки зрения терминологии - если функция возвращает структуру, состоящую из двух переменных, то считается, что это одно значение или два?
  А возвращение через ссылку считаем?
 
Записан

- Our arrows will blind out the sun
 - Then we will fight in the shade!
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #2 : Сентябрь 04, 2007, 03:47:30 »

Нет, вариант со структурой неправильный.
И возвращение по ссылке тоже не подходит.

Функция реально возвращает два значения типа int. Причем совершенно законно)))
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
tendervampire
Бакалавр
**

Карма: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 112


П.Б.Н.


« Ответ #3 : Сентябрь 04, 2007, 03:57:26 »

Ну, не знаю. Побитово записать в один double два int'a, вернуть, разобрать обратно на два int'a Улыбка
Записан

- Our arrows will blind out the sun
 - Then we will fight in the shade!
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #4 : Сентябрь 04, 2007, 04:01:00 »

tendervampire - прикольный вариант!!! Мне очень понравился.
Но это не то что я имел ввиду.
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
Olorin
Mодератор
Профессор
*****

Карма: +25/-4
Offline Offline

Пол: Мужской
Награды:
За долгое терпение.
Сообщений: 902


Кто к нам с чем зачем, тот от того и того


« Ответ #5 : Сентябрь 04, 2007, 04:15:02 »

Таких функций много Улыбка

Назовите функцию, которая возвращает два значения.

Каждая функция, возвращающая результат типа bool, возвращает 2 значения:
true  если правда
false  если ложь.
Записан

Количество опыта пропорционально количеству выведенной из строя техники.
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #6 : Сентябрь 04, 2007, 04:21:56 »

Olorin Нет)
Для переменной типа bool - True и False - это множество возможных значений.

"-Какова вероятность, что на вас нападет маньяк?
-50% на 50%, или нападет или не нападет!"
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
naxellar
Главный флудер
Проректор
*****

Карма: +101/-52
Offline Offline

Пол: Мужской
Сообщений: 5015

Главный флудер


« Ответ #7 : Сентябрь 04, 2007, 10:12:22 »

vimmax, В каком языке функция? Нужно имя функции, что-ли? Уточни, а то не совсем ясно.
Записан
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #8 : Сентябрь 05, 2007, 10:01:30 »

Вообще это библиотечная функция Unix систем.
Думаю ее можно вызвать из библиотеки на С, ASM, Kylix и т.д.
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #9 : Сентябрь 05, 2007, 10:16:51 »

Какой-то странный вопрос. В том же Си можно написать функцию, использующую в качестве аргументов указатели и вернуть не только два, а сколько угодно значений. Ну а если нужен пример стандартной функции, возвращающей два (или больше) значений, так возьмите тот же scanf (и другие функции из этого семейства) - возвращает число успешно введенных и присвоенных значений, ну и сами введенные значения, конечно.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #10 : Сентябрь 06, 2007, 10:05:24 »

EvilMax - не-а.  Подмигивающий

scanf возвращает в программу число успешно выведенных параметров - а это одна переменная типа int.

Можно конечно пофилософствовать и сказать что параметры, выведенные на stdout - тоже есть возвращенные параметры, но это не та функция, которую я имел ввиду.

Мой ответ с приколом, но вполне законный.
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
LazarusLong
Ирландский доброволец
Проректор
*****

Карма: +181/-7
Offline Offline

Пол: Мужской
Награды:
А может я тоже хочу себе награду?
Сообщений: 6134


Ukrainian by birth, Irish by the grace of God


WWW
« Ответ #11 : Сентябрь 06, 2007, 10:31:27 »

Нихт фрштейн.... то есть функция реально возвращает два значения (возможно разных типов)?.... представляю себе её прототип....
Записан

Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.

"...Он любил говорить факин щит
Когда что-то не так ему
Принимал он свой самый ирландский вид
И кидался трубкой в жену..."
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #12 : Сентябрь 06, 2007, 10:35:40 »

LazarusLong - да, функция возвращает два значения типа int.
Просто вы с ней не встречались )))

Функция Unix систем. Используется в многопоточном программировании.
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #13 : Сентябрь 06, 2007, 05:00:30 »

НУ НепонимающийНепонимающий?
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #14 : Сентябрь 06, 2007, 07:05:07 »

НУ НепонимающийНепонимающий?

Ты случайно не про fork? Функция создает новый процесс путем клонирования родительского и возвращает PID в родителе и 0 в дочернем. Конечно, при условии, что дочерний процесс удалось создать.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
vimmax
Модератор
Декан
*****

Карма: +42/-3
Offline Offline

Пол: Мужской
Награды:
лучшая гитара мира
Сообщений: 1713


♪♪ ♫ ♪♪ ♫ ♪♪ ♫ ♪♪


« Ответ #15 : Сентябрь 06, 2007, 07:29:22 »

EvilMax - Ура, Ура, Ура !!! У нас победитель! +1.

Да, Короче функция fork дублирует процесс на два равнозначных процесса и возвращает pId процесса.
Т.е. был у тебя один процесс, в нем вызвал fork - и теперь у тебя в памяти два абсолютно одинаковых процесса с разными pId - распараллеливание программы.
А функция fork вернет pid для первого процесса, а во втором дублированном процессе вернет pId для второго процесса, т.е. функцию вызвал один раз - а получил два ответа, хоть и для разных процессов   Показывает язык
Записан

♪♪ ♫  LET FOREVER BE  ♫ ♪♪ ♫ ♪♪ ♪♪ ♫
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #16 : Сентябрь 06, 2007, 07:40:35 »

Ясно. Вот только в дочернем процессе будет не PID, а 0. Вот отрывок из man fork:

RETURN VALUE
       On success, the PID of the child process is returned  in  the  parent's
       thread  of execution, and a 0 is returned in the child's thread of exe‐
       cution.  On failure, a -1 will be returned in the parent's context,  no
       child process will be created, and errno will be set appropriately.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Olorin
Mодератор
Профессор
*****

Карма: +25/-4
Offline Offline

Пол: Мужской
Награды:
За долгое терпение.
Сообщений: 902


Кто к нам с чем зачем, тот от того и того


« Ответ #17 : Сентябрь 07, 2007, 03:03:21 »

И все же я не согласен. Вопрос надо было ставить корректнее.У тебя ж не сказано, что функция возвращает одновременно 2 рез-та.
Ты написал
Может и баян  Подмигивающий

Назовите функцию, которая возвращает два значения.
True и false - это тебе не рез-ты?
Записан

Количество опыта пропорционально количеству выведенной из строя техники.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.092 секунд. Запросов: 33.