Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.07.2015, 15:19   #21
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Я лучше сам что-нибудь напишу.
Я, конечно, понимаю, что это можно прочесть... но к чему всё это? У меня вот конкретная задача – прочитать книжку с примерами и реализовать их на практике. А у вас какие цели были?

Анекдот.
Цитата:
К чему всё это, Василий Иванович? Лучше бы водки выпили.

Последний раз редактировалось jura_k; 09.07.2015 в 15:27.
jura_k вне форума   Ответить с цитированием
Старый 09.07.2015, 15:22   #22
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,664
По умолчанию

Цитата:
Я лучше сам что-нибудь напишу.
Чо, не осилил?
Правильно, я б тоже пасанул. Код там - аццкий ужос. Ничо не поделаешь: QC 1989 года - это вам не это!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума   Ответить с цитированием
Старый 24.07.2015, 09:21   #23
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Свершилось! Я решил 7 задач из задачника. Ввод данных представляет собой довольно длинный, нудный процесс; поэтому, чтобы не повторять его 7 раз, я решил сэкономить и дать исходные данные семи задачам сразу. Это значит, что вы вводите данные (6 целых чисел) для всех задач одним махом. И они начинают считать. Пробуйте!
Программа написана для Windows 32-bit. Работает во всех версиях от Windows 95 до Windows Vista. Скачать программу, текст программы и условия задач можно здесь:
https://yadi.sk/d/_35psXXri4V5H

Задачи:
1-1. (1) Угол α задан в градусах, минутах и секундах. Найти его величину в радианах с максимально возможной точностью. Рекомендуется проверить работоспособность программы для углов, больших развёрнутого, а также для отрицательных углов.

1-3. (2) Длина отрезка задана в дюймах, 1 дюйм = 2,54 мм. Перевести значение длины в метрическую систему, то есть выразить её в метрах, сантиметрах и миллиметрах. Так, например, 21 дюйм = 0 м 53 см 3,4 мм.

1-4. (3) Заданы моменты начала и конца некоторого промежутка времени в часах, минутах и секундах в пределах одних суток. Найти продолжительность этого промежутка в тех же единицах измерения.

1-5. (4) В такси одновременно сели три пассажира. Когда вышел первый пассажир, на счётчике было p1 рублей; когда вышел второй – p2 рублей. Сколько должен был заплатить каждый пассажир, если по окончании поездки счётчик показал p3 рублей? Плата за посадку составляет p0 рублей.

1-6. (5) Коммерсант, имея стартовый капитал k рублей, занялся торговлей, которая ежемесячно увеличивает капитал на p%. Через сколько лет он накопит сумму s, достаточную для покупки собственного магазина?

1-10. (6) Найти корни квадратного уравнения, заданного своими коэффициентами, с положительным дискриминантом; подстановкой в уравнение убедиться в погрешности вычислений.

1-15. (7) У квадрата ABCD на плоскости известны координаты двух противоположных вершин – точек A и C. Найти координаты точек B и D.

Программа:
Код:
Файл “p1Doc.h”

class CP1Doc:public CDocument
{
protected:
	CP1Doc ();
	DECLARE_DYNCREATE (CP1Doc);
	char aa [50];	//   место для вводимых символов
	int ba, bb, bc, bd, be, bf;		//   исходные данные - целые числа
	int ca, cb;		//   указатель ввода в строку данных, <Enter>
	int da [10];		//   место хранения данных для вывода на экран
	double db [10];
	CString dc [10];
	int ea, eb;

	void fa ();	//   перевод данных из символьной формы в цифровую
	void fb ();
	void fc ();	//   Задача p19 - 1 (1)
	void fd ();	//   Задача p19 - 3 (2)
	void fe ();	//   Задача p19 - 4 (3)
	void fg ();	//   Задача p20 - 5 (4)
	void fh ();	//   Задача p20 - 6 (5)
	void fi ();	//   Задача p21 - 10 (6)
	void fj ();	//   Задача p22 - 15 (7)
};


Файл “p1Doc.cpp”

#include "stdafx.h"
#include "math.h"
#include "p1.h"
#include "p1Doc.h"

CP1Doc::CP1Doc ()
{
	aa [0] = 0;
	ba = bb = bc = bd = be = bf = 0;
	ca = cb = 0;
	da [0] = 0;
}

void CP1Doc::fa ()
{
	cb = 1;
	ea = 0;

	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	ba = eb;
	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	bb = eb;
	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	bc = eb;
	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	bd = eb;
	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	be = eb;
	while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea] != '-'  &&  aa [ea]) ea++;
	fb ();
	bf = eb;
	fc (); fd (); fe (); fg (); fh (); fi (); fj ();
}

void CP1Doc::fb ()
{
	int a;

	eb = 0;
	a = 1;
	if (aa [ea] == '-') {a = -1; ea++;}
	while (aa [ea] >= '0'  &&  aa [ea] <= '9')
	{
		eb = eb * 10 + aa [ea] - '0';
		ea++;
	}

	eb *= a;
}

void CP1Doc::fc ()
{
	int a;
	double b;

	a = ba;
	if (ba < 0)  a = -a;
	b = ((bc / 60. + bb) / 60 + a) / 180 * 3.141592653589;
	if (ba < 0)  b = -b;
	db [0] = b;
}

void CP1Doc::fd ()
{
	int a, b;
	double c;

	c = ba * .0254;
	if (c < 0)  c = 0;
	a = (int) c;
	c = (c - a) * 100;
	b = (int) c;
	c = (c - b) * 10;
	da [1] = a;
	da [2] = b;
	db [1] = c;
}

Последний раз редактировалось jura_k; 24.07.2015 в 09:26.
jura_k вне форума   Ответить с цитированием
Старый 24.07.2015, 09:33   #24
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Я решил 7 задач
Поздравляю. 7 козней Эгипетцкых тебя минуют )
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 27.07.2015, 23:31   #25
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 708
По умолчанию

min@y™. у тебя похоже стиль программирования и под Си выработан.

п.с. единственный человек чей код радует глаз .
Респект тебе. Поставил бы + но форум не даёт
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума   Ответить с цитированием
Старый 28.07.2015, 00:11   #26
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,664
По умолчанию

Цитата:
п.с. единственный человек чей код радует глаз .
обоснуй. чо там такого?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума   Ответить с цитированием
Старый 04.01.2016, 18:38   #27
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Очередной шедевр программирования.

}[/code]

что оно хоть делает ?
RAFA91 вне форума   Ответить с цитированием
Старый 04.01.2016, 19:06   #28
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Вот посмотрите сюда:
http://programmersforum.ru/showthread.php?t=287606
Там я реализовал примеры из книги под DOS. А в той программе, про которую вы спрашиваете, я как раз (раньше) пытался их реализовать под Windows. Получилось через пень-колоду, сами видите. Вот и перешёл на "родную" среду программирования.

В принципе то же самое, но были проблемы с выводом текста на форму. Это под DOS достаточно "printf ()".
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 15.07.2017, 12:27   #29
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Будни программиста.



Мой рабочий стол.

мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 28.10.2017, 16:16   #30
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Повторение пройденного.
Эта программа ничего не делает. Но в неё можно ввести три целых числа.
Во вложении - архив работающей программы. Зацените.
Совместимость программы: Windows 95, Windows 2000, Windows Vista. Под Windows 95 English version программа показывает кракозябры, потому что не установлен русский шрифт.
Код:
//   Файл "p11Doc.h"

class CP11Doc:public CDocument
{
protected:
   CP11Doc ();
   DECLARE_DYNCREATE (CP11Doc);
   int aa, ab, ac;      //   исходные данные - целые числа
   int ad, ae;         //   указатель ввода в строку данных, <Enter>
   int ag, ah;
   char aj [50];      //   место для вводимых символов
   int ap [10];      //   место хранения данных для вывода на экран

   void am ();      //   перевод данных из символьной формы в цифровую
   void an ();
};

//   Файл "p11Doc.cpp"

CP11Doc::CP11Doc ()
{
   aa = ab = ac = ad = ae = 0;
   aj [0] = ap [0] = 0;
}

void CP11Doc::am ()
{
   ae = 1;
   ag = 0;

   while ((aj [ag] < '0'  ||  aj [ag] > '9')  &&  aj [ag] != '-'  &&  aj [ag]) ag++;
   an ();
   aa = ah;
   while ((aj [ag] < '0'  ||  aj [ag] > '9')  &&  aj [ag] != '-'  &&  aj [ag]) ag++;
   an ();
   ab = ah;
   while ((aj [ag] < '0'  ||  aj [ag] > '9')  &&  aj [ag] != '-'  &&  aj [ag]) ag++;
   an ();
   ac = ah;
}

void CP11Doc::an ()
{
   int a;

   ah = 0;
   a = 1;
   if (aj [ag] == '-') {a = -1; ag++;}
   while (aj [ag] >= '0'  &&  aj [ag] <= '9')
   {
      ah = ah * 10 + aj [ag] - '0';
      ag++;
   }

   ah *= a;
}

//   Файл "p11View.cpp"

void CP11View::OnDraw (CDC* pDC)
{
   CP11Doc* pdoc = GetDocument ();
   ASSERT_VALID (pdoc);
   CString a;

   pDC -> TextOut (10, 10, "Введите три целых числа (Input 3 int):");
   pDC -> TextOut (10, 35, pdoc -> aj);
   a.Format ("code = %i", pdoc -> ap [0]);
   pDC -> TextOut (10, 60, a);
   if (pdoc -> ae)
   {
      a.Format ("%i %i %i", pdoc -> aa, pdoc -> ab, pdoc -> ac);
      pDC -> TextOut (10, 85, a);
   }
}

void CP11View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags) 
{
   CP11Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);

   pdoc -> ap [0] = nChar;
   if (nChar == 8)
   {
      if (pdoc -> ad) {pdoc -> ad--; pdoc -> aj [pdoc -> ad] = 0;}
      goto aaa;
   }

   if (nChar == 13)
   {
      pdoc -> am ();
      goto aaa;
   }

   if (pdoc -> ad < 49)
   {
      pdoc -> aj [pdoc -> ad] = nChar;
      pdoc -> aj [pdoc -> ad + 1] = 0;
      pdoc -> ad++;
   }

aaa:
   Invalidate ();
   CView::OnChar (nChar, nRepCnt, nFlags);
}
Вложения
Тип файла: 7z p11.7z (6.4 Кб, 19 просмотров)
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA

Последний раз редактировалось jura_k; 28.10.2017 в 16:19.
jura_k вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С клавиатуры вводятся числа, в порядке возрастания их значения. Признаком конца ввода является ввод числа, которое не удовлетворяе Masha Koks Помощь студентам 2 26.11.2013 23:58
Ввод с клавиатуры два целых числа без знака и вывод на экран их сумму. gelya_17 Помощь студентам 5 18.10.2010 10:31
ввод с клавиатуры Sparky Assembler - Ассемблер 5 10.09.2009 17:05