Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2015, 17:51   #1
Bagmen
Новичок
Джуниор
 
Регистрация: 06.02.2015
Сообщений: 2
Вопрос Программа с нуля, помощь новичку.

Здравствуйте. Мне 19 лет и я учусь на 3 курсе колледжа, на специальность "Компьютерные системы и комплексы". А в программирование я дуб, знаний вообще ноль. Знатоки, внимание вопрос: Подскажите пожалуйста, с чего начать изучение программирования? У меня есть идея, а как её воплотить в жизнь я без понятия. Суть, нужно создать персонажа с его характеристиками ( здоровье, мана, реген маны, урон, и т.д.), и имеющимися заклинаниями ( урон заклинания, дистанция и т.д.) и сравнить его с другим персонажем. К примеру, взять любого персонажи из Доты и сравнить с любым другим. Кто из них более сильный, живучий, полезный и по другим характеристикам. Идея вот есть, а куда с ней податься без понятия и как сделать тоже нет идей. А из программирования, я только "Hello World" написал)
Bagmen вне форума Ответить с цитированием
Старый 06.02.2015, 17:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Начни с хорошей книги )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2015, 18:01   #3
Bagmen
Новичок
Джуниор
 
Регистрация: 06.02.2015
Сообщений: 2
По умолчанию

А какой именно то?) Их как...., но не все полезные. Вот читал одну, первая лекция про Hello World, а во второй я вообще потерялся и не говоря уже о третьей. А так как, я с трудом представляю себе, из чего состоит программа, то мне нужна та книга, в которой всё всё всё пошагово будет и тщательно разжевано.
Bagmen вне форума Ответить с цитированием
Старый 06.02.2015, 18:48   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Bagmen, у вас же интернет под рукой. Неужели трудно сформулировать вопрос для поиска? Нагуглить статьи, туториалы, книжки?

Поставьте себе любую среду программирования из списка

Лично я предпочитаю Qt Creator. Вот "Hello, World"

Персонаж - это объект класса, например, Player, а враг Enemy. Вот простой пример. Здесь класс Character содержит общие функции и переменные для классов Player и Enemy. Остальные характеристики, что вы перечислили, вы можете добавить сами. Это просто для затравки. Тут код создаёт два объекта класса Player и Enemy и сравнивает уровни здоровья

main.cpp
Код:
#include <iostream>
#include "Player.h"
#include "Enemy.h"

int main()
{
    Player megaman( "Megaman" );

    Enemy badBoy( "BadBoy" );

    if ( megaman.health() == badBoy.health() )
        std::cout << "Health is Equal" << std::endl;
    else
        std::cout << "Health is not Equal" << std::endl;

    return 0;
}
Enemy.h
Код:
#ifndef ENEMY_H
#define ENEMY_H

#include <string>
#include "Character.h"

class Enemy : public Character
{
public:
    Enemy( const std::string &name, int health = 100 );
};

#endif // ENEMY_H
Enemy.cpp
Код:
#include "Enemy.h"

Enemy::Enemy( const std::string &name , int health ) :
    Character( name, health )
{
}
Player.h
Код:
#ifndef PLAYER_H
#define PLAYER_H

#include <string>
#include "Character.h"

class Player : public Character
{
public:
    Player( const std::string &name, int health = 100 );
};

#endif // PLAYER_H
Player.cpp
Код:
#include "Player.h"

Player::Player( const std::string &name , int health ) :
    Character( name, health )
{
}
Character.h
Код:
#ifndef CHARACTER_H
#define CHARACTER_H

#include <string>

class Character
{
public:
    Character( const std::string &name, int m_health );
    virtual ~Character() = 0; // Это чисто виртуальный деструктор, чтобы
                              // нельзя было создать объект этого класса, а
                              // только наследовать от него функции и переменные

    void setName( const std::string &name );
    std::string name() const;

    void setHealth( int health );
    int health() const;

private:
    std::string m_name;
    int m_health;
};

#endif // CHARACTER_H
Character.cpp
Код:
#include "Character.h"

Character::Character( const std::string &name, int health ) :
    m_name( name ),
    m_health( health )
{
}

Character::~Character()
{
}

void Character::setName( const std::string &name )
{
    m_name = name;
}

std::string Character::name() const
{
    return m_name;
}

void Character::setHealth( int health )
{
    m_health = health;
}

int Character::health() const
{
    return m_health;
}
8Observer8 вне форума Ответить с цитированием
Старый 06.02.2015, 19:11   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

В подобной формулировке это задача на сравнение двух чисел. Предположим, есть число здоровья одного персонажа hp1 и число здоровья другого персонажа hp2. Тогда живучесть будет проверяться логической операцией сравнения больше (>), меньше(<), равно(==). hp1 < hp2, hp1 == hp2, hp1 > hp2.

Программа состоит из машинных кодов. Машинный код или опкод это код операции центрального процессора (ЦП). Опкод это набор из двух шестнадцатеричных чисел. Числа, которыми оперирует программа, помещаются в регистры ЦП. Для сравнения двух чисел понадобятся два регистра. У ЦП имеются 32 битные регистры eax, ebx, ecx, edx. Для упрощения понимания машинных кодов создана абстракция над ними в виде ассемблерных инструкций. Логическое сравнение производится инструкцией cmp. В шестнадцатеричном виде инструкция cmp имеет вид 83.

Передачу управления исполнением инструкций осуществляет ядро операционной системы (ОС). Ядро ОС предоставляет точку входа для приложения в режиме защиты процессора. В нулевом кольце защиты приложение исполняется как драйвер. Пользовательские программы пишутся в третьем кольце защиты. Процессорное время ядро ОС распределяет между всеми находящимися в ОС приложениями.

Существуют интерпретируемые и компилируемые языки программирования (ЯП). Примеры интерпретируемых языков программирования: Perl, PHP, Python, Ruby, Tcl, sh. Примеры компилируемых языков программирования: Pascal, C, C++, Basic, Assembly.

Современные промышленные системы разработки (IDE) генерируют код в автоматическом режиме.

Возможны следующие пути развития:
1. дискретная математика (Книга: Новиков "Дискретная математика для программистов")
2. алгоритмы и структуры данных (Книги: Седжвик "Фундаментальные алгоритмы на C++", Вирт "Структуры данных и алгоритмы", Кнут "Искусство программирования")
3. ассемблер -> С -> С++
4. С -> С++
5. С++
6. Паскаль
7. Basic
и другие.

На сайте http://artlib.osu.ru/Docs/piter/theme/101-1160.html (издательство Питер) указаны следующие книги по ассемблеру:
- Assembler для DOS, Windows и UNIX для программистов
- Assembler: Учебник для вузов. 2-е изд. (В. Юров)
- Assembler. Специальный справочник. 2-е изд. (В. Юров)
- Assembler: Практикум. 2-е изд. (В. Юров)
- Ассемблер. Самоучитель (А. Крупник)

Следующие книги по языку С/С++:
- C/C++. Программирование на языке высокого уровня: Учебник для вузов (Т. Павловская)
- C/C++. Структурное программирование: Практикум (Т. Павловская, Ю. Щупак)

Следующие книги по языку Паскаль:
- Паскаль. Программирование на языке высокого уровня: Учебник для вузов (Т. Павловская)
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 06.02.2015, 19:40   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А какой именно то?)
Да они все одинаковые. Я бы Кернигана и Риччи посоветовал. Это классика. Если речь о Си.
Если о Паскале-Делфи то Вирта, Тейксеру и Пачеко.
Ну и так далее, смотря что хочется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в php новичку ... s88s PHP 12 27.06.2014 00:47
Помощь новичку в JTextField Masafi Общие вопросы по Java, Java SE, Kotlin 2 30.03.2014 21:07
Помощь новичку - Ассемблер Cat1986 Помощь студентам 3 08.07.2008 09:16