Форум программистов, компьютерный форум CyberForum.ru

Как в C++ управлять пк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать все функции инициализации и доступа к объектам класса окружность http://www.cyberforum.ru/cpp-beginners/thread196119.html
Дан класс окружность,включающий в себя диаметр и площадь.Указать все необходимые функции инициализации и доступа к объектам класса.Перегрузить для объектов класса операторы +,-,*,/ относительно площади
C++ Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке Здравствуйте, у меня задание есть, не как не могу придумать решение проблемы, вот у меня есть программа #include "stdafx.h" #include <iostream> #include <conio.h> #include <iomanip> using namespace std; void main() { http://www.cyberforum.ru/cpp-beginners/thread196102.html
поиск согласных в строке C++
После каждой согласной буквы вставляется буква например "b". Подскажите хотябы алгоритм нахождения согласных .В принципе можно было напсиать чтото типа if(s == 'b' ||s == 'c'..... ) {} но мб есть какаянибудь стандартная функция для поиска согласных.На Си.
дерево поиска C++
Введите элемент на экран дерево поиска со саммым простым методом Перепишите задание нормально, или тема будет удалена.
C++ Помогите написать програму для нахождения суммы ряда!!! http://www.cyberforum.ru/cpp-beginners/thread196023.html
Найти сумму ряда с точностью e=10-4, общий член которого an=lg(n!)e в степени -n^n.
C++ точки пересечения даны 2 ф-ции и нада найти их точки пересичения,даже точки даны тока их надо найти спомощью проги. так вот писал я так float x=0; for(int i=0;i<30;i++) { if (tan(x)==tanh(x)) {cout<<x<<endl;} x+=3.14/6;} подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16933 / 5338 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
23.11.2010, 21:00     Как в C++ управлять пк
Цитата Сообщение от KuKu Посмотреть сообщение
так вопрос для общего развития ... эта же информация не зависит от операционки, значит должна содержаться вне ее. Как то можно узнать, где она конкретно хранится(там адрес в памяти или тому подобное) ?)
Информация хранится в аппаратуре. Там есть термометр, с которого можно снять показания. Есть драйвер под материнскую плату, при помощи которого операционная система "общается" с аппаратурой. Драйвер - это такой же интерфейс между ОС и машиной, каким является API (интерфейс между приложением и ОС).

На пальцах это дело выглядит примерно так. Любое устройство подключается через так называемые порты ввода-вывода, которые при помощи материнской платы отображаются на некие адреса памяти. Т.е. в машине может стоять 1 гиг памяти, но адреса, к примеру, из диапазона 3.7-4 гига (при условии 32-битного режима) используются для портов ввода-вывода (независимо от количества памяти в машине). Эти адреса материнская плата транслирует не на модули памяти, а на шину, через которую втыкаются устройства. Операционная система выполняет "обычное" (или почти обычное, детально не могу сказать) чтение или запись в память по адресу, отображённому на устройство. Это обращение пойдёт в устройство. Например (чисто теоретически), видеокарта может работать таким образом, что если по адресу 0x11223344 записать единичку, то по адресу 0x11223345 будет сформировано значение температуры графического процессора, а если записать двойку, то будет сформировано скорость вращения кулера и т.п. К каждому устройству прилагается драйвер, который в одной стороны "знает", как общаться с устройством, с другой стороны знает, по каким правилам надо общаться с ОС (потому в каждой ОС свои принципы работы с драйверами)

Ну из сказанного можно понять, почему при наличии 4 гигов оперативы, реально видно только 3.5 или 3.2 или 3 (в зависимости от материнской платы). Точно так же можно понять, почему драйвер видеокарты под винду не будет работать под линуксом (хотя казалось бы, машина одна и та же и коды исполняются те же самые). Точно так же программа, работающая с устройством под виндой непосредственно через драйвер (т.е. на низком уровне) не будет работать под линуксом, даже если перекомпилять исходники. именно поэтому пишут интерфейсы ещё более высокого уровня. Например, Open GL. Это набор библиотек, который с одного конца имеет несколько реализаций под различные ОС, с другой стороны имеет интерфейс прикладного уровня, НЕ зависящий от операционной системы.

Так или иначе, между пользовательской программой и аппаратурой всегда имеется цепочка из нескольких интерфейсов начиная драйвером и заканчивая прикладной библиотекой. И всё, что находится между программой и машиной, построено по принципу конструктора: из различных кубиков выстраивается нужная цепочка. Но на практике не все кубики имеются в наличии, хотя теортеически их всегда можно создать (было бы кому этим заняться)
 
Текущее время: 05:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru