Jump to content

Search the Community

Showing results for tags 'Programação'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • OpenTibia
    • Promoted Projects
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
    • Divulgação de Servidores
    • Projetos e Formações de Equipes
  • Outros
    • Design

Found 110 results

  1. Estou usando esse >Servidor< upado em uma maquina do Google Cloud em Ubuntu 14.04 LTS, a maneira que pensei em por online é compilando o OTX ou o The Forgottenserver, mas o que observei é que ambos são servidores prontos, fuçando as pastas achei alguns arquivos e movi eles para a pasta principal no qual eu upei o servidor Os arquivos são esses do spoiler, excluindo as pastas. Quando eu movia para a pasta principal, eu ia até ela e digitava no terminal ./tfs, com tudo configurado o servidor abria "normal", o site acusava o servidor como online, o cliente logava na tela de personagens, porem, não entrava no jogo, o modo que eu fiz pra abrir esta certo? ou eu teria que compilar outra coisa? ou se eu fiz certo, voltamos ao problema de porta do google que citei no outro >Topico<.
  2. Antes de fazer a sua pergunta, tenha certeza de ter lido o guia abaixo: [Hidden Content] Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do Website / etc). Ex: The Forgotten Server 1.3, Versão: 10.98; Base: Qual a sua pergunta? Queria saber como faço para mudar a quantidade de exp que o player precisa para passar de lvl. Exp: um player lvl 1 para passar pro lvl 2, precisa de 100exp, eu queria dividir os valores por 5, sendo o mesmo player para passar do lvl 1 ao 2 precisaria de 20 de exp. mudei essa linha no player.h e compilei porém mesmo assim não funciona. Alguem poderia me falar onde mais eu devo trocar para que funcione esse formula? Obrigado. Original: ((50ULL * lv * lv * lv) - (150ULL * lv * lv) + (400ULL * lv)) / 3ULL; Tentei essa formula: (((50ULL * lv * lv * lv) - (150ULL * lv * lv) + (400ULL * lv)) / 3ULL) / 5ULL ; Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
  3. Programação Erro ao compilar

    Salve galera, tudo bem? Então recentemente eu tentei compilar uma função que existe na net, porem o fórum que ela estava acabou bugando totalmente o código ou parte dele na verdade, se algum de vocês conseguir me ajudar ficarei muito grato. O código foi feito para a versão: 0.3.6 - 8.54 Servidor utilizado para teste: Aqui #Resolvido: Source utilizada - [Hidden Content] ERROS: In member function 'void ProtocolGame::AddCreature(NetworkMessage_ptr, const Creature*, bool, uint32_t)': 2670 C:\Source\protocolgame.cpp 'Nick' was not declared in this scope 2670 C:\Source\protocolgame.cpp In member function 'void ProtocolGame::reloadCreature(const Creature*)': 3102 C:\Source\protocolgame.cpp expected initializer before 'it' 3103 C:\Source\protocolgame.cpp 'it' was not declared in this scope CÓDIGO:
  4. Programação Erro ao compilar

    Salve galera, tudo bem? Estou com um erro ao tentar compilar uma "source 0.3.6", não sei o que pode ser pois nem alterei nada neste arquivo; Segue o erro: In member function 'void Items::parseItemNode(xmlNode*, uint32_t)': 1739 C:\Users\items.cpp a function-definition is not allowed here before '{' token 1823 C:\Users\items.cpp expected '}' at end of input 1823 C:\Users\items.cpp *** [obj//items.o] Error 1 O código: Se alguém puder me ajudar, ficarei muito grato!
  5. Base: TFS 1.2, Versão 8.6 Qual a sua pergunta? Queria saber onde usar o OnSelectTarget e sua tag, se é em events, creaturescript... Peguei esse script de outro forum, então estarei disponibilizando o código dele aqui. Creditos: MarceLoko
  6. Segui este tutorial E o original do GitHub do TFS e estou com 3 erros em 1 mesmo arquivo RSA.H
  7. Base: The Forgotten Server 1.1, Versão: 9.86 (downgraded) Qual a sua pergunta? Onde eu encontro o código responsável pelo ganho de Speed por nível, e como ele funciona? Meu objetivo é removê-lo, ou editá-lo para que não se receba bônus de Speed cada vez que o personagem sobe de nível.
  8. Programação Efeito de Poça ao Morrer

    Galera, anteriomente, eu fiz uma postagem que eu estava querendo remover o efeito de sangue ao receber atk ou ao atk. Agr a duvida e semelhante, queria remover a poça que da ao morrer, exemplo quando eu morro ou algum jogador morre, aparece uma poça de sangue em baixo do corpo de ambos. Queria saber se alguem pode me ajudar com essa duvida ai ! TFS 0.3.6 - 8.54
  9. Programação Efeito de sangue

    Eai galera. Nos tibias e alguns derivados possuir um efeito de sangue que todos conhecem, (Ao atar um mob ou levar dano de algo, sai um efeito de sangue tanto do persgonagem quanto do mob.) Eu estava querendo remover este efeito, algumas pessoas me informaram que seria pela source em alguns locais mas não encontrei e tbm nada derivado a blood. ! Eu uso verção 8.54, 0.3.6. Se alguem puder me dar uma força agradeço.
  10. Salve salve! Estou compilando as Sources do TFS 0.4 com a rev3777 (8.6), assim como no tutorial: Cheguei na parte de compilar, depois de abrir o TFS.dev, e me surgiu uma dúvida. Dúvida: Em meu projeto, as vocações serão alteradas, não existirá mais as vocações padrão: Druid, Knight, Paladin e Sorcerer. No lugar delas, apenas 2 novas que eu pretendo/quero criar. Eu preciso mudar agora, ou posso deixar pra mexer nisso após ter meu data pack compilado? Obs.: É minha segunda compilação, e minha noção sobre isso tudo ainda é básica (ou de nível inferior), me desculpem se a dúvida for irrelevante para alguns... Desde já, agradeço o suporte. Fico no aguardo de respostas.
  11. Olá novamente! Queria tirar minhas últimas dúvidas antes de compilar meu servidor, para não acabar pulando alguma parte importante. Já me decidi em usar o "TFS 1.3", disponível na seção de Downloads: O que eu queria saber, é que alterações não poderei mais fazer após a compilação do servidor, assim como no tutorial. Há algo importante que tenho que fazer antes? Ou, mesmo após compilar, posso fazer alterações conforme minhas necessidades?
  12. Olá pessoal, no meu server quando um player usar uma runa ou potion, o char para de andar e eu queria remover isso. Algumas soluções de cunho PALIATIVO que achei são de retirar o Exhaust e não é bem essa a intenção. Estou usando um server 10.99, database_otserv.sql (acho que é do Malucooo). Obrigado pela atenção.
  13. Olá pessoal, Eu consegui adaptar o Summon/Pet para entrar no PZ, passar por dentro dos jogadores e não ser atacado. Porém, estou precisando agora que ele passe também por dentro dos monstros. A ideia do summon será apenas um suporte (como os do Naruto), ele não atrapalhará em nada, apenas dará alguns bônus como life, mana e outros para o dono. Para uma possível ajuda nessa adaptação, vou mostrar baixo aonde editei o código para que ele possa passar por dentro do player (arquivo player.cpp) alterei as linhas onde têm bool Player::canWalkthrough(const Creature* creature) const até o fechamento dela e bool Player::canWalkthroughEx(const Creature* creature) const também até o fechamento dela por todo esse código abaixo: bool Player::canWalkthrough(const Creature* creature) const { if (group->access || creature->isInGhostMode()) { return true; } if (creature->isSummon() && creature->getMaster()->getPlayer()) { return true; } const Player* player = creature->getPlayer(); if (!player) { return false; } const Tile* playerTile = player->getTile(); if (!playerTile || (!playerTile->hasFlag(TILESTATE_PROTECTIONZONE) && player->getLevel() > static_cast<uint32_t>(g_config.getNumber(ConfigManager::PROTECTION_LEVEL)))) { return false; } const Item* playerTileGround = playerTile->getGround(); if (!playerTileGround || !playerTileGround->hasWalkStack()) { return false; } Player* thisPlayer = const_cast<Player*>(this); if ((OTSYS_TIME() - lastWalkthroughAttempt) > 2000) { thisPlayer->setLastWalkthroughAttempt(OTSYS_TIME()); return false; } if (creature->getPosition() != lastWalkthroughPosition) { thisPlayer->setLastWalkthroughPosition(creature->getPosition()); return false; } thisPlayer->setLastWalkthroughPosition(creature->getPosition()); return true; } bool Player::canWalkthroughEx(const Creature* creature) const { if (group->access) { return true; } if (creature->isSummon() && creature->getMaster()->getPlayer()) { return true; } const Player* player = creature->getPlayer(); if (!player) { return false; } const Tile* playerTile = player->getTile(); return playerTile && (playerTile->hasFlag(TILESTATE_PROTECTIONZONE) || player->getLevel() <= static_cast<uint32_t>(g_config.getNumber(ConfigManager::PROTECTION_LEVEL))); } E também adicionei esse código g_game.updateCreatureWalkthrough(creature); acima do g_game.updateCreatureType(creature); que está no arquivo luascript.cpp Pronto, com isso ele passa a andar por dentro dos jogadores. -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/- APROVEITANDO o mesmo post, se alguém souber como faz para Summonar DENTRO DO PZ, por favor. Eu adaptei para ele entrar no PZ quando o jogador entrar, mas dentro do PZ não da pra sumonar caso o Pet/Summon não esteja sumonado. Vou mostrar aonde editei os códigos aqui abaixo pra facilitar o suporte. Dentro de ReturnValue Tile::queryAdd(int32_t, const Thing& thing, uint32_t, uint32_t flags, Creature*) const no arquivo tile.cpp procurei a linha if (hasFlag(TILESTATE_PROTECTIONZONE | TILESTATE_FLOORCHANGE | TILESTATE_TELEPORT)) { e adicionei o código seguinte logo a baixo dele. // INÍCIO SUMMON ENTRAR NO PZ if (creature->isSummon()) { if (hasFlag(TILESTATE_BLOCKSOLID)) { return RETURNVALUE_NOTPOSSIBLE; } return RETURNVALUE_NOERROR; } // FIM SUMMON ENTRAR NO PZ Pronto, agora ele já entra no PZ com o player. -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/- E pra finalizar, o código que usei pra sumonar (scripts do movements): (obs.: como não estou conseguindo fazer com que sumone-o dentro do PZ, eu adaptei um sistema para avisar que dentro do PZ não da pra sumonar, porém não é isso que eu quero, coloquei provisoriamente). local cfg = { monster = "Rat" } function onDeEquip(cid, item, slot) if #getCreatureSummons(cid) >= 1 then local pet = getCreatureSummons(cid) for _, k in ipairs(pet) do doSendMagicEffect(getThingPos(k), 13) doRemoveCreature(k) return true end end return true end function onEquip(cid, item, slot) if getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid, "This summon is not permitted in a protection zone.") else if #getCreatureSummons(cid) == 0 then local monster = doSummonCreature(cfg.monster, getThingPos(cid)) doConvinceCreature(cid, monster) doSendMagicEffect(getThingPos(cid), 13) end end return true end -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/- Para o Pet/Summon não ser atacado eu simplesmente marquei como "0" dentro do código do próprio monstro <flag attackable="0"/> DESDE JÁ OBRIGADO !
  14. Bom dia, Pessoal, é o seguinte, estou com um bug nos frags, vamos supor que coloquei para pegar red skull com 10 frags, o player pega 10 injusts e fica red, até ai tudo bem, a red skull dele sai dps de um tempo, porem os frags não estão saindo, então se ele volta a pegar só um injust, ele fica red novamente, os frags estão demorando de mais para sair, e era para sair junto com o red.. no meu antigo distro, tinha uma função de timedecreasefrag, onde eu colocava um tempo para cada frag sair, nessa nova distro, n encontrei nada do tipo e a função não funciona nela, eu precisava de alguma solução para remover os frags corretamente... segue meu player.cpp com a parte dos frags: bool Player::addUnjustifiedKill(const Player* attacked, bool countNow) { if(!g_config.getBool(ConfigManager::USE_FRAG_HANDLER) || hasFlag( PlayerFlag_NotGainInFight) || g_game.getWorldType() != WORLDTYPE_OPEN || hasCustomFlag(PlayerCustomFlag_NotGainUnjustified) || hasCustomFlag( PlayerCustomFlag_NotGainSkull) || attacked == this) return false; if(client && countNow) { char buffer[90]; sprintf(buffer, "Warning! The murder of %s was not justified.", attacked->getName().c_str()); client->sendTextMessage(MSG_STATUS_WARNING, buffer); } time_t now = time(NULL), today = (now - 84600), week = (now - (7 * 84600)); std::vector<time_t> dateList; IOLoginData::getInstance()->getUnjustifiedDates(guid, dateList, now); if(countNow) dateList.push_back(now); uint32_t tc = 0, wc = 0, mc = dateList.size(); for(std::vector<time_t>::iterator it = dateList.begin(); it != dateList.end(); ++it) { if((*it) > week) wc++; if((*it) > today) tc++; } uint32_t d = g_config.getNumber(ConfigManager::RED_DAILY_LIMIT), w = g_config.getNumber( ConfigManager::RED_WEEKLY_LIMIT), m = g_config.getNumber(ConfigManager::RED_MONTHLY_LIMIT); if(skull < SKULL_RED && ((d > 0 && tc >= d) || (w > 0 && wc >= w) || (m > 0 && mc >= m))) setSkullEnd(now + g_config.getNumber(ConfigManager::RED_SKULL_LENGTH), false, SKULL_RED); if(!g_config.getBool(ConfigManager::USE_BLACK_SKULL)) { d += g_config.getNumber(ConfigManager::BAN_DAILY_LIMIT); w += g_config.getNumber(ConfigManager::BAN_WEEKLY_LIMIT); m += g_config.getNumber(ConfigManager::BAN_MONTHLY_LIMIT); if((d <= 0 || tc < d) && (w <= 0 || wc < w) && (m <= 0 || mc < m)) return true; if(!IOBan::getInstance()->addAccountBanishment(accountId, (now + g_config.getNumber( ConfigManager::KILLS_BAN_LENGTH)), 20, ACTION_BANISHMENT, "Unjustified player killing.", 0, guid)) return true; sendTextMessage(MSG_INFO_DESCR, "You have been banished."); g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_WRAPS_GREEN); Scheduler::getInstance().addEvent(createSchedulerTask(1000, boost::bind( &Game::kickPlayer, &g_game, getID(), false))); } else { d += g_config.getNumber(ConfigManager::BLACK_DAILY_LIMIT); w += g_config.getNumber(ConfigManager::BLACK_WEEKLY_LIMIT); m += g_config.getNumber(ConfigManager::BLACK_MONTHLY_LIMIT); if(skull < SKULL_BLACK && ((d > 0 && tc >= d) || (w > 0 && wc >= w) || (m > 0 && mc >= m))) { setSkullEnd(now + g_config.getNumber(ConfigManager::BLACK_SKULL_LENGTH), false, SKULL_BLACK); setAttackedCreature(NULL); destroySummons(); } } return true; } Se alguem puder me ajudar, eu agradeceria muito. Obrigado.
  15. Programação Erro na compilação

    Boa noite, eu utilizo o TFS 0.4 rev 3884 e ao colocar a função onmoveitem ( [Hidden Content] ) ele retorna esse erro na compilação: alguém poderia me ajudar por favor? Obrigado.
  16. Olá. Estou com uma dúvida sobre a programação do jogo em si. Vejo hoje em dia vários servidores com idéias boas e remakes excelentes, e veio a dúvida: - "É possível moldar o jogo do jeito que eu quiser, ou existem limites? O que eu posso e o que eu não posso modificar?" Estou aberto à discussões. Tenho várias idéias para implementações e modificações, mas primeiro precisaria entender como o Tibia foi programado para funcionar. Aceito links de tópicos como ajuda. Desde já, agradeço.
  17. Olá Amigos, Gostaria de saber se já aconteceu o mesmo problema com vocês, seguinte; Adicionei novos efeitos no OBB, depois editei o tools.cpp e const.h, mandei compilar, substitui o exe e por último editei o constants.lua. Os efeitos apareceram ok, porem, eles não desaparecem, não sei se tem q fazer mais alguma configuração ou fiz alguma coisa errado? Outra coisa que percebi que os efeitos funcionam somente com a acc do GOD, testei em um char comum e deu debug na hora. Desde já agradeço;
  18. Programação Linguagem Lua

    Olá! Estou começando a estudar Lua. Venho da linguagem Python. Estou com algumas dúvidas em relação ao Lua, no início parecia semelhante ao Python, porém quando falamos em modulos/bibliotecas a coisa muda totalmente. Minha dúvida é para entender essa questão de pacotes, se existe algum site para não perder tempo reinventado a roda. Atualmente meu objetivo é mostrar um texto na tela, como se fosse uma janela, porém transparente - estilo o conky do Linux - e somente mostrando as letras, para da a impressão de estar vinculado ao papel de parede.
  19. Quero fazer um servidor 100% em português. E é facil traduzir os nomes dos itens, magias, falas etc. Mas como eu traduzo quando damos look em algo? >> "You see a ..." >> "Você vê um..." E como traduzimos as palavras no Cliente do tibia? Tão quanto os botões, por exemplo o "Help", "Logout", "Stop", "Skull".... Grato desde já!
  20. Olá galera eu queria fazer um pedido eu vou explicar e especificar oque eu preciso , antes de pedir eu venho informar que eu vou dar rep ++ em todas postagens de quem me ajudar Bom vamos ao pedido : Oque eu quero é simplesmente um programa para eu adicionar dados exemplo : O programa vai ter banco de dados porque ?? porque eu quero que teja uma tela de login e senha simples não tão FODA uma coisa simples e também que esteja salvando os dados que eu estiver adicionando dentro do programa e eu quero que tenha um botão de alterar algum dos dados que eu adicionei e também tenha outro botão de remover algum dos dados que eu adicionei lembrando que precisa ter uma caixinha pequena pra marcar pra não remover todos os dados O programa vai conter tudo que tem na imagem abaixo , mais isso só foi uma demonstração veja \/.
  21. Programação OT 10x+ Windows

    Olá, sou novo aqui no fórum, estou procurando há alguns meses um tutorial que explique detalhadamente como colocar um servidor 10x+ online no windows, a maioria dos tutoriais que encontro são de linux. Antigamente quando baixava um OT, era só modificar pequenas coisas a seu gosto e pronto, só executar, os 10x tem uma diferença, parece que vem faltando arquivo, tem umas paradas de compilação e tal, procurei aqui e não encontrei tutorial também. Quem puder dar uma força ai, agradecido desde já!
  22. Programação Simples PT.4

    Hail! Náh Ultima Aula Vimos As Estruturas De Repetição Repete e Enquanto,Nesta Aula Iremos Ver a Estrutura De Repetição Para e Vetores! Para: Sintaxe: [b]Para [/b][VAR] [b]de [/b][N1] [b]ate [/b][N2] [b]passo [/b][OPTIONAL] Comandos... [b]proximo[/b] Explicação: Executa o Bloco De Comando N* vezes Incrementando(ou decrementando) o Contador Com o Passo. Passo Não é Obrigatorio(se n for declarado recebe 1). *Se N1 For 1 e Passo For 1 Ele Executa o Bloco N2 Vezes, Se N1 For Maior Que 1 e Passo For 1 Executa o Bloco N2-N1 Vezes, Entenderao Mais Com Os Exemplos! Exemplos: 1º-Escrever Todos Numeros De 1 ate 50: [b]inicio[/b] [b]inteiro [/b]i [color="silver"]// Declarando o Contador[/color] [b]para [/b]i [b]de [/b][color="Red"]1[/color] [b]ate [/b][color="red"]50[/color] [color="silver"]// Declarando o Loop[/color] [b]escrever [/b]i , [color="Magenta"]"\n"[/color] [color="Silver"]// Escrevendo o Número[/color] [b]proximo[/b][color="Silver"]// Fexando o Loop[/color] [b]fim[/b] 2º-Escrever Todos Numeros Pares Entre 1 e 51: [b]inicio[/b] [b]inteiro [/b]i [color="Silver"]// Declarando o Contador[/color] [b]para [/b]i [b]de [/b][color="red"]2[/color] [b]ate [/b][color="red"]50[/color] [b]passo [/b][color="red"]2[/color] [color="silver"]// Declarando o Loop Com Passo[/color] [b]escrever [/b]i , [color="Magenta"]"\n"[/color] [color="silver"]// Escrevendo o Número[/color] [b]proximo [/b] [color="silver"]// Fexando o Loop[/color] [b]fim[/b] 3º-Escrever Todos Numeros De 10 Até 1: [b]inicio[/b] [b]inteiro [/b]i [color="Silver"]// Declarando o Contador[/color] [b]para [/b]i [b]de [/b][color="red"]10[/color] [b]ate [/b][color="red"]1[/color] [b]passo [/b][color="Lime"]- [/color][color="red"]1[/color] [color="silver"]// Declarando o Loop Com Passo[/color] [b]escrever [/b]i , [color="Magenta"]"\n"[/color] [color="silver"]// Escrevendo o Número[/color] [b]proximo [/b] [color="silver"]// Fexando o Loop[/color] [b]fim[/b] Saídas Geradas Pelos Algoritmos Acima: 1º) [spoiler=Resp:] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 2º) [spoiler=Resp] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 3º) [spoiler=Resp] 10 9 8 7 6 5 4 3 2 1 Se Não Entendeu Revise Pois Vai Precisar Dele Para Aprender Vetores! Vetor: Vetor é Uma Tabela Uni Dimensional. Declaração(Estarei Usando Um Vetor Inteiro e Um Texto Na Explicacao e No Exemplo!): [b]inteiro [/b]idade[6] [b]texto [/b]nome[6] Note Que Se Declara Como Uma Variavel Normal,Só Muda o [] Na Frente, Sintaxe: tipo nome[posicoes + 1] No Caso Teria Que Ser Posicoes Mais 1,Por Que No Portugol o Vetor Comeca Em 1 e Tem Que Ter 1 Espaco Vazio "SEMPRE!", Ficando Assim a Declaração De 1 Vetor tipo Texto Com 5 Posições: texto nomes[[color="Red"]6[/color]] Lendo Valores De 1 Vetor: Você Pode Fazer Assim: [b]inicio[/b] [b]texto [/b]nome[6] nome[1] = "oi" nome[2] = "xD" nome[3] = "Este é" nome[4] = "Um POG!" nome[5] = "XAU" [b]fim[/b] Ou Assim: [b]inicio[/b] [b]inteiro [/b]i [b]texto [/b]nome [ [color="Red"]6[/color] ] [b]para [/b]i [b]de [/b][color="red"]1[/color] [b]ate [/b][color="red"]5[/color] [b]ler [/b]nome [ i ] [b]proximo[/b] [b]fim[/b] Para Se Escrever Valores Usa-se o Msm Metodo Que Para Ler! vetor [ posicao ] Exemplo: Ler 1 Vetor De N Posicoes Com Nomes e 1 Vetor Com As Idades De Cada Pessoa e Escreve-los Ao Contrario: [b]inicio[/b] [b]inteiro [/b]n , i [b]escrever [/b][color="Magenta"]"Digite a Quantidade De Pessoas:"[/color] [b]ler [/b]n [b]inteiro [/b]idade [ n [color="Lime"]+[/color] [color="Red"]1[/color] ] [b]texto [/b]nome [ n [color="lime"]+[/color] [color="red"]1[/color] ] [b]para [/b]i [b]de [/b][color="red"]1[/color] [b]ate [/b]n [b]escrever [/b][color="Magenta"]"Digite o Nome Da Pessoa "[/color] , i , [color="Magenta"]":"[/color] [b]ler [/b]nome [ i ] [b]escrever [/b][color="Magenta"]"Digite a Idade Da Pessoa "[/color] , i , [color="Magenta"]":"[/color] [b]ler [/b]idade [ i ] [b]proximo[/b] [b]para [/b]i [b]de [/b]n [b]ate [/b][color="Red"]1[/color] [b]passo [/b][color="Lime"]-[/color] [color="red"]1[/color] [b]escrever [/b][color="Magenta"]"Nome:"[/color] , nome [ i ] , [color="Magenta"]"\nIdade:"[/color] , idade [ i ] , [color="Magenta"]"\n"[/color] [b]proximo[/b] [b]fim[/b] Saídas Geradas Pelo Algoritmo Acima: Digite a Quantidade De Pessoas:[u]3[/u] Digite o Nome Da Pessoa 1:[u]Ushoriuma[/u] Digite a Idade Da Pessoa 1:[u]14[/u] Digite o Nome Da Pessoa 2:[u]Teste[/u] Digite a Idade Da Pessoa 2:[u]16[/u] Digite o Nome Da Pessoa 3:[u]Mamae[/u] Digite a Idade Da Pessoa 3:[u]40[/u] Nome:Mamae Idade:40 Nome:Teste Idade:16 Nome:Ushoriuma Idade:14 Exercício: Leia 1 Vetor De 7 Posicoes e Em Seguida Calcula a Soma De Todos Seus Elementos: [spoiler=Resposta!][spoiler=Fuuuuu][spoiler=Seja Honesto][spoiler=Ultimo] [b]inicio[/b] [b]inteiro [/b]numeros [ [color="Red"]8[/color] ] , soma , i [b]para [/b]i [b]de [/b][color="red"]1[/color] [b]ate [/b][color="red"]7[/color] [b]escrever [/b][color="Magenta"]"Digite Um Número:"[/color] [b]ler [/b]numeros [ i ] soma [color="RoyalBlue"]<-[/color] soma [color="Lime"]+[/color] numeros [ i ] [b]proximo[/b] [b]escrever [/b][color="Magenta"]"A Soma Do Vetor é:"[/color] , soma [b]fim[/b] Até a Proxima Aula!
  23. Programação Simples PT.3

    Hail! Náh Ultima Aula Vimos As Estruturas De Seleção e Os Operadores,Nesta Aula Iremos Ver As Estruturas De Repetição Enquanto e Repete Enquanto:Executa o Bloco De Comandos Enquanto a Condição For Verdadeira Repete:Exequta o Bloco De Comandos Até a Condição Ser Verdadeira(ou não)! Hey How Let's Go! Primeiro Iremos Conhecer a Estrutura Enquanto: Sintaxe: [b]enquanto [/b][condição verdadeira] [b]faz[/b] [Comandos] [b]fimenquanto[/b] Obs Valida Para Enquanto e Repete.:É Preciso Incrementar Ou Decrementar a Condição Sempre,Senao Você Irá Gerar Um LOOP Infinito(a Não Ser Que Queira Isso!) Exemplo: escrever todos os numeros de 1 ate 10: [b]inicio[/b] [b]inteiro [/b]numero [b]enquanto [/b]numero [color="Lime"]< [/color][color="Red"]10 [/color][b]faz[/b] numero [color="Blue"]<-[/color] numero [color="lime"]+[/color] [color="red"]1[/color] [b]escrever [/b]numero [b],[/b] [color="Magenta"]"\n"[/color] [b]fimenquanto[/b] [b]fim[/b] Saídas Geradas Pelo Algoritmo Acima: 1 2 3 4 5 6 7 8 9 10 Agora Iremos Conhecer a Estrutura Repete: Sintaxe: [b]repete[/b] [comandos] [b]ate[/b] [[color="Blue"]condição verdadeira[/color]] Exemplo: escrever todos os numeros de 1 ate 10: [b]inicio[/b] [b]inteiro [/b]numero [b]repete [/b] numero [color="Blue"]<-[/color] numero [color="lime"]+[/color] [color="red"]1[/color] [b]escrever [/b]numero [b],[/b] [color="Magenta"]"\n"[/color] [b]ate[/b] numero [color="Lime"]=[/color] [color="Red"]10[/color] [b]fim[/b] Saídas Geradas Pelo Algoritmo Acima: 1 2 3 4 5 6 7 8 9 10 Exercício: [color="purple"]Fazer Um Algoritmo Que Escreva Todos Os Numeros Pares entre 1 e 25 Usando o Enquanto e Um Algoritmo Que Escreva Em Ordem Decrescente Todos Os Números De 1 até 50 Usando Repete:[/color] [spoiler=Resposta:][spoiler=Seja Honesto!][spoiler=Só Abra Se Realmente Tentou][spoiler=Este é o Ultimo!] [b]inicio[/b] [b]inteiro [/b]numero [b]enquanto [/b]numero [color="Lime"]<[/color] [color="Red"]24 [/color][b]faz[/b] numero [color="Blue"]<-[/color] numero [color="lime"]+[/color] [color="Red"]2[/color] [b]escrever [/b]numero [b],[/b] [color="Magenta"]"\n"[/color] [b]fimenquanto[/b] [b]fim[/b] [b]inicio[/b] [b]inteiro [/b]numero [color="blue"]<-[/color] [color="red"]50[/color] [b]repete[/b] [b]escrever [/b]numero , [color="Magenta"]"\n"[/color] numero [color="Blue"]<-[/color] numero [color="Lime"]-[/color] [color="red"]1[/color] [b]ate [/b]numero [color="lime"]=[/color] [color="red"]0[/color] [b]fim[/b] Até a Proxima Aula!
  24. Programação Simples PT.1

    Hello! Olá Pessoal,apartir de hj vou comecar a dar "aulas" de programação, somente o basico. requisitos: Compilador portugol Download Aki! Mas Do Que Se Trata? se trata de 1 compilador de Algoritmos!(Para ensino basico!) (Pelo Menos Foi Isso Que Minha Professora Falo Quando Comecei Meu Curso!x.x) Sem Mais Delongas,Vamos Láh! PS.:Todo Programa Começa Com Inicio o Termina Com Fim \n Significa Quebra De Linha // Adiciona Comentario Na Linha /* Comentario De Muitas Linhas Até */ Primeiro Vamos Conhecer a Funcao De Saida De Dados(escrever ...): [size=3][b]inicio[/b] [b]escrever [/b]"Olá Mundo!" [b]fim[/b][/size] para executar o algoritmo acima aprete F3! Saída Do Algoritmo: Olá Mundo! Agora Vamos Conhecer Os Tipos De Variaveis: [b]texto [/b][color=Silver]// Armazena Um Conjunto De Caracteres[/color] [b]character [/b][color=Silver]// Armazena Caracteres Da Tabela ASCII[/color] [b]real [/b][color=Silver]// armazena numeros reais Ex. 3,5[/color] [b]inteiro [/b][color=Silver]// armazena numeros inteiros Ex 3[/color] [b]logico [/b][color=Silver]// armazena verdadeiro ou falso[/color] Para Armazenarmos Valores Em Uma Variavel Usamos o Símbolo "<-" Ou a Funcao "ler": //Ex1."<-" [b]inicio[/b] [b]texto [/b]palavra [color=Blue]<-[/color] [color=Magenta]"Aprendendo a Programar Com Ushoriuma!"[/color] [b]caracter [/b]teste [color=Blue]<-[/color] [color=Magenta]"V"[/color] [b]real [/b]ponto [color=Blue]<-[/color] [color=Red]3.5[/color] [b]inteiro [/b]numero [color=Blue]<-[/color] [color=Red]3[/color] [b]logico [/b]verdade [color=Blue]<-[/color] verdadeiro [b]escrever [/b][color=Magenta]"Var Tipo Texto(palavra):"[/color] , palavra , [color=Magenta]"\nVar Tipo Character(teste):"[/color] , teste , [color=Magenta]"\nVar Tipo Logico(verdade):"[/color] , verdade , [color=Magenta]"\nVar Tipo Real(ponto):"[/color] , ponto , [color=Magenta]"\nVar Tipo Inteiro(numero):"[/color] , numero , [color=Magenta]"\n---Fim---"[/color] [b]fim [/b]// "oi" [b],[/b] VAR [b],[/b] "oi":Usa-se , para concanetar strings Saída Gerada Pelo Algoritmo Acima: [color=black]Var Tipo Texto(palavra):[/color][color=black]Aprendendo a Programar Com Ushoriuma! [/color][color=black]Var Tipo Character(teste):V [/color][color=black]Var Tipo Logico(verdade):VERDADEIRO [/color][color=black]Var Tipo Real(ponto):3.5 [/color][color=black]Var Tipo Inteiro(numero):3 [/color][color=black]---Fim--- [/color] Agora Vamos Conhecer a Funcao De Entrada De Dados(ler var): [b]inicio[/b] [b]inteiro [/b]num [b]escrever[/b] [color=Magenta]"Digite Um Número Inteiro:"[/color] [b]ler[/b] num [b]real [/b]real_num [b]escrever [/b][color=Magenta]"\nDigite Um Número Real:"[/color] [b]ler [/b]real_num [b]texto [/b]frase [b]escrever [/b][color=Magenta]"\nDigite Uma Frase:"[/color] [b]ler [/b]frase [b]logico [/b]verdade [b]escrever [/b][color=Magenta]"\nDigite Um Valor Lógico:"[/color] [b]ler [/b]verdade [b]escrever [/b][color=Magenta]"Você Digitou:"[/color] , num , [color=Magenta]"\n"[/color] , real_num , [color=Magenta]"\n"[/color] , frase , [color=Magenta]"\n"[/color] , verdade , [color=Magenta]"\n---Fim---"[/color] [b]fim[/b] Saída Gerada Pelo Algoritmo Acima: Digite Um Número Inteiro:3 Digite Um Número Real:3.5 Digite Uma Frase:Oi,Meu Nick é Ushoriuma Digite Um Valor Lógico:falso Você Digitou:3 3.5 Oi , Meu Nick é Ushoriuma FALSO ---Fim--- Bem,Por Hj é sóh,Até a Proxima Aula!xD Duvidas,Sugestoes Postem Aki,Sem PMs Pliz,Minah Caixa Ta Quase Full :/ >.< thx!
  25. Aula I - Introdução a Linguagem C

    Olá galera da OTBR é um prazer imenso estar aqui com vocês. Primeiramente quero dizer que, sou iniciante na area de Programação e que como alguns estou começando nos estudos da mesma. De antemão quero justificar que, decidi criar tutoriais para ajudar os membros da seção e para meu crescimento na área, portanto não adianta me criticar por ser novato. Sem mais delongas vamos ao que interessa. [+]Para que se Estudar Programação? [+] A programação faz parte do dia a dia do ser humano. É atraves desta, que o homem aprimora e agiliza a transição da informação e aumenta o nivel tecnológico, proporcionando mais agilidade, conforto e seguraça para os que detém o mesmo. Com base na linguagem C, podemos encontra-la em sistemas operacionais, planilhas eletrônicas, processadores de texto, gerenciadores de banco de dados, etc, o que em sua maioria remete ao seguinte fato: a programação auxilia seu usúario na solução de problemas. E para começar a estudar a linguagem C, veremos brevemente um conceito de algoritmo. [+] O Que É um Algoritmo? [+] Muitas definições podem ser atribuidas á palavra algoritmo. Mais de uma forma resumida e clara : Um procedimento passo a passo para a solução de um problema. Sequência detalhada de ações a serem executadas para realizar alguma tarefa. Como podemos ver, um algoritmo nada mais é que uma sequência pré-determinada, para que um processo se finde, ou seja, tenha solução.Outra coisa muito importante de se ter conhecimento é que, a forma como os programas são traduzidos para a linguagem de máquina classifica-os em duas categorias: interpretados e compilados. Um interpretador lê a primeira instrução do programa, faz uma consistência de sua sintaxe(disposição das palavras e seu sentido lógico) e se não houver erro converte-a para linguagem de máquina(ou seja, o objeto ao qual o computador irá compreender o que se pede em determinada função) para finalmente executá-la Segue, entao, para a próxima instrução , repetindo o processo ate findar todas as instruções ou até que a consistência aponte algum erro. Um compilador lê a primeira instrução do programa, faz uma consistência de sua sintaxe e se nao houver erro converte-a para a linguagem de máquina e, em vez de executa-la, segue para a proxima instrução repetindo o processo ate findar as instruções ou ate que a consistência aponte algum erro.Se não houver erros, o compilador gera um programa em disco com o sufixo.obj com as instruções já traduzidas. Porém, o programa não pode ser executado até que sejam agregadas a ele rotinas em linguagem de máquina que lhe permitirão a sua execução. Este trabalho é feito por um programa chamado "linkeditor" que , alem de juntar as rotinas, criando um produto final com o sufixo EXE. [+] Forma Geral das Funções C [+] Vamos começar pelo menor programa possivel em C. Este programa compõe-se de uma única função chamada main. Todo e qualquer programa deve conter a função main(), pois ela determina o inicio do programa e o fim do mesmo. Os parentêses após o nome indicam que esta é uma função. O nome de uma função C pode ser qualquer um com exceção de main, reservado para a função que inicia a execução do programa.Toda função C deve ser iniciada por uma chave de abertura, {, e encerrada por uma de fechamento,}. Esta deve existir em algum lugar do seu programa, marcando assim o ponto de inicio para a execução do mesmo. Vamos adicionar uma instrução em nosso programa. Observação: as instruções devem sempre ser encerradas por ; , pois este é parte da função. É uma das funções de entrada e saida que podem ser usadas em C. Como citamos acima ("Ola galera OTBR"), esta informação é chamada de argumento de printf(). Outro exemplo: main() Este programa irá mostrar na tela do seu computador a seguinte mensagem: Cada argumento é separado por virgula, então podemos citar o exemplo: O programa imprimirá a seguinte mensagem: Manhuaçu é uma cidade que fica a 277 quilometros de Belo Horizonte. Portanto notamos alguns codigos de formatação, como %s que imprime uma cadeia de caracteres (ou seja, mais de um caractere estabelecido no argumento) e %d (que imprime o argumento em forma decimal), segue abaixo uma lista com alguns codigos e sua utilização em C. [+] Códigos Especiais [+] [+] Códigos de Formatação printf() [+] Vamos criar um pequeno programa, para que voces possam assimilar as ideias. Para isso iremos utilizar o compilador Dev-C++. [spoiler=Download Dev-C++][Hidden Content] Abra seu programa e vá em File>New>Source File ou apenas aperte Ctrl+N, como mostra a seguir: Faremos então um programa simples de soma,que receba algum valor, calcule o mesmo e mostre o resultado. Compile o programa em Execute>Compile e salve com a extensão .c. Apos feito isso basta ir em Execute>Run para rodar o programa. Explicando o programa: #include <stdio.h> Cabeçalho padrão de entrada/saida da linguagem C. #nclude <stdlib.h> Cabeçalho padrão que possui funções envolvendo alocação de memória,controla conversões e processos. //Variaveis int meninos, meninas, soma; Aqui declaramos as variaveis, meninos, meninas e soma e dizemos ao programa que elas possuem valor inteiro. Obs: a barra dupla serve para inserir um comentário em determinado trecho do programa. Lembrando que o programa ignora o que estáescrito depois de //. main() { } Esta é a função raiz do programa. Sua função é determinar o inicio e o termino do programa, ou seja, todos as instruções dentro desta função, constituem a rotina do programa. printf("Digite o numero de meninos na sala:"); Esta função imprime o argumento que lhe é atribuido, ou seja, no caso acima "Digite o numero de meninos na sala:". scanf("%d", &meninos); Esta função armazena o dado que é atribuido pelo usuário armazenando-o em uma variavel. Este armazenamento é representado acima por &meninos, ou seja, receba o valor do usuario e o armazene na variavel meninos. soma = meninos+meninas; Atribui a variavel soma um valor igual a soma de meninos e meninas. fflush (stdin); getch(); return 0; Nas próximas aulas, estudaremos a utilização desses comandos no final do programa. Bom galera, intao é isso, espero que tenha ajudado alguém que está iniciando, e que gostem da aula. Caso assim for, estarei preparando mais alguma coisa para compartilhar com vocês. Aceito sugestões e criticas - desde que sejam CoNsTrUTiVaS - . Até a proxima.
×