Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » нужны задания практические по С

Ответить
Настройки темы
нужны задания практические по С

Аватара для bool

Старожил


Сообщения: 229
Благодарности: 9

Профиль | Отправить PM | Цитировать


Изменения
Автор: bool
Дата: 28-05-2007
вспоминаю и изучаю дальше - С, самостоятельно. Дайте какие нибудь задания пожалуйста, а лучше несколько по возрастающей (по сложности) . Или посоветуйте где можно эти задания найти 8) Уровень начинающего.

Отправлено: 18:05, 17-11-2006

 

Аватара для bezumes

Пользователь


Сообщения: 68
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar Windows.rar
(2.1 Kb, 3 просмотров)

Цитата:
когда подключаю <windows.h> , компилятор ругается на его отсутствие вообще у себя.
Хм.Значит придется обходится без CharToOem. Попробуйте тогда вот так.Хоть что-нибудь должно же работать
Код: Выделить весь код
#include <locale>

std::wcout.imbue(std::locale(".866"));
wchar_t str[] = L"Привет!!!";
wcout << str << endl;
Код: Выделить весь код
#include <locale>

std::wcout.imbue(std::locale(".866"));
std::wstring string(L"Привет");
   wcout << string << endl;
   wcout << L"Привет !!!" << endl;
 
   unsigned char ch;
   ch='Ж';
   cout<<ch<<"\t"<<hex<<(int)ch<<endl;

   ch='\x86';
   cout<<ch<<"\t"<<hex<<(int)ch<<endl;
Вот кстати и windows.h

-------
Ты говоришь я Демон, так и есть.
Со мною не видать тебе удачи.
Навеки моё дело зло и месть.
Для демона не может быть иначе.(с) КиШ


Последний раз редактировалось bezumes, 07-05-2007 в 14:42.


Отправлено: 22:06, 06-05-2007 | #51



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


bool
Цитата:
MSDN
Function Information
Minimum DLL Version user32.dll
Header Declared in Winuser.h, include Windows.h
Import library User32.lib
Цитата:
компилятор ругается на его отсутствие вообще у себя
странно, в Builder точно, должно работать.

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.


Отправлено: 00:14, 07-05-2007 | #52


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


Преобразовать ASCII в Unicode можно с помощью "сишной" функции mbstowcs().
Код: Выделить весь код
#include <stdio.h>
#include <tchar.h>

#include "stdlib.h"

void main()
{
	char str[] = "example";
	wchar_t str_t[sizeof("example")];
	//Функция преобразующая ASCII в Unicode
	mbstowcs(str_t,str,sizeof("example"));
	wprintf(_T("%s\n"),str_t);
}

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.


Отправлено: 19:41, 07-05-2007 | #53


Аватара для bool

Старожил


Сообщения: 229
Благодарности: 9

Профиль | Отправить PM | Цитировать


1) в MS Visual C++ Express, если успешно прошла компиляция , то при дальнейшем изменении проекта и повторной компиляции он продолжает компилиться по старому, не изменённому, варианту. Пробывал сохранять после изменения, а потом уже компилировать, не помогает =/ Что я делаю не правильно?
2) модераторам: возможно ли название этой темы сменить на "C,C++ | азы" ?

Отправлено: 23:48, 31-05-2007 | #54

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


я использую такую фигнюшку, если не принципиально что только под виндой рабоатет
Код: Выделить весь код
std::wstring wstr(const char* s, unsigned size);
std::wstring wstr(const char* s) {return wstr(s, std::strlen(s));}

...

std::wstring wstr(const char* s, unsigned size)
{
    std::wstring w(size, wchar_t());
    MultiByteToWideChar(CP_ACP, 0, s, w.size(), &w[0], w.size());
    return w;
}

Отправлено: 12:37, 04-06-2007 | #55


Аватара для bool

Старожил


Сообщения: 229
Благодарности: 9

Профиль | Отправить PM | Цитировать


программка для побайтного вывода значения типа double в двоичном представлении:

Код: Выделить весь код
#include "stdafx.h"
#include <iostream>
using namespace std;

union bits {
	bits(double n);
	void show_bits();
	double d;
	unsigned char c[sizeof (double)];
};

bits::bits(double n)
{
	d = n;
}

void bits::show_bits()
{
	int i, j;

	for( j = sizeof(double) -1; j >=0; j--) {
		cout << "Double declaration of the bit" << j << ":";
		for( i = 128; i; i >>=1)
			if(i & c[j]) cout << "1";
			else cout << "0";
			cout << "\n";
	}
}

int main()
{
	bits ob(1991.829);
	ob.show_bits();
	return 0;
}
меня интересует вот эта часть:
Код: Выделить весь код
if(i & c[j]) cout << "1";
else cout << "0";
ведь мы определяем d, а не с[] , почему сравнивают побайтно i и c? потому что они в объединении и следовательно в одной области памяти? объясните пожалуйста поподробнее

Отправлено: 00:46, 27-06-2007 | #56


Аватара для bool

Старожил


Сообщения: 229
Благодарности: 9

Профиль | Отправить PM | Цитировать


ещё такой полуоффтопный вопрос : что значит
Цитата:
Присылайте ваши резюме на блабла@блаблабла.ru с кодом C++/010
. Что есть C++/010???

Отправлено: 19:46, 28-06-2007 | #57

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


по поводу вопроса:
union - это "объединение", все поля будут занимать одну и ту же память. Это сделано в древнем языке "си" для того, чтобы можно было легко переделать из одного вида в другой. Компилятор автоматически выбирает под такие объединения столько памяти, сколько необходимо, чтобы хранить все члены объединения. Например:
Код: Выделить весь код
union {
  int i;
  char c[3];
} union1;

union1.i = 0x12345678;

// хранится как:
// хранится как:
// адрес    значение  
// 440000   0x78       // i=0x12345678 //c[0]=0x78
// 440001   0x56                       //c[1]=0x56
// 440002   0x34                       //c[2]=0x34
// 440003   0x12
У вас биты отображаются в обратном порядке:
[code]
void bits::show_bits()
{
int i, j;

// мы перебираем память задом-наперёд?

for( j = sizeof(double) -1; j >=0; j--) {
cout << "Double declaration of the bit" << j << ":";
for( i = 128; i; i >>=1) // перебираем биты задом-наперёд?
if(i & c[j]) cout << "1";
else cout << "0";
cout << "\n";
}
}
[code]
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:33, 29-06-2007 | #58


Аватара для bool

Старожил


Сообщения: 229
Благодарности: 9

Профиль | Отправить PM | Цитировать


pva
спасибо
т.е. в первой итерации 128 побитно сравнивают с c[j]? объясните пожалуйста как получился первый байт? я попробЫвал вывести значение
c[j], и так какая то хрень получилась, вроде @0000000, оно и понятно, ведь тип то char. Понял я то, что мы идем по разрядам байта с конца, т.е сначала 128, потом 64 , 32 и т.д. А вот как получается результат? Вот кстати и он:

Код: Выделить весь код
байт 7: 01000000
байт 6: 10011111
байт 5: 00011111
байт 4: 01010000
байт 3: 11100101
байт 2: 01100000
байт 1: 01000001
байт 0: 10001001

Отправлено: 17:38, 29-06-2007 | #59


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Энтузиазм закончился? Если нет, то вот одна задачка, вернее вопрос, для тех кто и с С++ уже немного знаком, из одного популярного журнала:
"Определить какой из кодов, к какому из синтаксисов (С или С++) относится и объяснить почему, по каким параметрам был найден ответ".
Код: Выделить весь код
forum (o, s)
int o, s;
{
int z;
for (z = 1; n>0; --n)
     z = z*t;
return z;
}
Код: Выделить весь код
//Some text to view on output device
printf("%d %d\n", e*=2, f+=3);
Код: Выделить весь код
for (int z = 0; z< MAXIMUM -1 && o! = '\n'; ++p; summa+=z)
Код: Выделить весь код
int forums: 4
Только не надо разыскивать ни журнал, ни его номер в поисках ответа, попробуйте ответить своими силами, знаниями и пониманиями.

Последний раз редактировалось Admiral, 03-05-2008 в 20:39. Причина: Ошибся малёк


Отправлено: 20:11, 03-05-2008 | #60



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » нужны задания практические по С

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - Двойные задания печати. rezzyurfak Microsoft Windows 2000/XP 0 28-09-2009 14:53
Fujifilm FinePix F100fd Практические советы и рекомендации! UADE Цифровое изображение 9 07-09-2009 10:39
Новые задания Veter23 Лечение систем от вредоносных программ 8 17-07-2009 21:30
Прочее - Беспроводной интернет. Практические вопросы. Murder7 Сетевое оборудование 4 07-11-2008 08:36
Назаначенные задания - Безопасность Chuk Microsoft Windows 2000/XP 3 19-10-2005 14:13




 
Переход