Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Escreva um programa C++ com uma função chamada inverter_string() que recebe uma string como argumento e devolve a mesma string invertida - Desafio de Programação Resolvido em C++Quantidade de visualizações: 217 vezes |
Pergunta/Tarefa: Escreva um programa C++ com uma função chamada inverter_string() que recebe uma string como argumento e devolve a mesma string invertida, ou seja, com a ordem de seus caracteres ao contrário. Seu código pode usar apenas a função length() da classe String e indexação de caracteres. Sua saída deverá ser parecida com: Informe uma palavra ou frase: Gosto muito de C++ A string informada foi: Gosto muito de C++ A string invertida é: ++C ed otium otsoG Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> #include <string> using namespace std; // função que permite inverter a string recebida // como argumento string inverter_string(string); // função principal do programa int main(int argc, char *argv[]){ string frase; // vamos pedir para o usuário informar uma palavra ou frase cout << "Informe uma palavra ou frase: "; getline(cin, frase); // vamos mostrar o resultado cout << "A string informada foi: " << frase << endl; // agora vamos inverter a string frase = inverter_string(frase); // e mostramos a string invertida cout << "A string invertida é: " << frase << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } // função que permite inverter a string recebida // como argumento string inverter_string(string str) { // criamos uma string temporária que aponta para a // string recebida string temp_str = str; // para controlar o índice da string int indice_pos = 0; // começamos no último caractere da string e voltamos // para o último for (int i = temp_str.length() - 1; i >= 0; i--){ // trocamos os caracteres str[indice_pos] = temp_str[i]; // e aumentamos o índice indice_pos++; } // e retornamos a string invertida return str; } |
Link para compartilhar na Internet ou com seus amigos: |
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como criar uma tabela no PostgreSQL usando o comando DDL CREATE TABLEQuantidade de visualizações: 6138 vezes |
O comando DDL CREATE TABLE do PostgreSQL é usado quando queremos criar uma nova tabela em uma determinada base de dados (e schema). Em geral criamos novas tabelas usando a ferramenta pgAdmin. No entanto, é importante conhecer e dominar este comando de forma a conseguirmos criar tabelas a partir da janela de Query do pgAdmin, do SQL Shell (psql) ou usando uma linguagem de programação. O comando DDL CREATE TABLE contém uma série de cláusulas opcionais. Muitas delas são abordadas nas dicas desta seção. Apenas o nome da tabela a ser criada é obrigatório. Veja o comando CREATE TABLE a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- CREATE TABLE produtos(); Este comando criará uma tabela vazia e sem nenhum campo no schema public da base de dados na qual estamos conectados no momento. É claro que uma tabela sem nenhum campo não possui nenhuma utilidade (a não ser que decidamos adicionar os campos mais tarde). Sendo assim, veja um comando CREATE TABLE que cria uma tabela chamada usuarios com os campos: id, nome, senha, data_cadastro: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- CREATE TABLE usuarios( id serial NOT NULL, nome varchar(20) NOT NULL, senha varchar(20) NOT NULL, data_cadastro date NOT NULL, PRIMARY KEY (id) ); Ao dispararmos o comando, o PostgreSQL nos exibirá a seguinte mensagem: NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq" para coluna serial "usuarios.id" NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "usuarios_pkey" na tabela "usuarios" Query returned successfully with no result in 121 ms. Isso é sinal de que a tabela foi criada com sucesso. Para verifirmos e exibirmos os dados da tabela recém-criada, podemos disparar o seguinte comando DML SELECT: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- SELECT column_name, data_type, is_nullable, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'usuarios'; Como resultado teremos: column_name data_type is_nullable character_maximum_length id integer NO nome character varying NO 20 senha character varying NO 20 data_cadastro date NO É importante termos em mente a mensagem de erro que o PostgreSQL exibirá quando tentamos criar uma tabela com um nome de uma já existente na mesma base de dados e schema: NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq1" para coluna serial "usuarios.id" ERRO: relação "usuarios" já existe ********** Error ********** ERRO: relação "usuarios" já existe SQL state: 42P07 ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- CREATE TABLE IF NOT EXISTS usuarios( id serial NOT NULL, nome varchar(20) NOT NULL, senha varchar(20) NOT NULL, data_cadastro date NOT NULL, PRIMARY KEY (id) ); Agora o PostgreSQL trocará a mensagem de erro pela seguinte mensagem de advertência: NOTA: relação "usuarios" já existe, ignorando Query returned successfully with no result in 14 ms. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Dart - Escreva um programa Dart para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 461 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor (List) de 8 inteiros List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9]; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Dart: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // vamos declarar e construir um vetor (List) de 8 inteiros List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9]; // vamos mostrar o vetor na ordem original print("Vetor na ordem original:\n"); for(int i = 0; i < valores.length; i++){ stdout.write("${valores[i]} "); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor int j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for(int i = 0; i < valores.length; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j int temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado print("\n\nVetor com os zeros deslocados para o final:\n"); for(int i = 0; i < valores.length; i++){ stdout.write("${valores[i]} "); } } Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
PHP ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila PHP - Como usar o tipo de dados string do PHPQuantidade de visualizações: 10258 vezes |
Strings são cadeias de caracteres, ou seja, palavras, frases e trechos de texto são considerados strings e usadas em praticamente todos os tipos de aplicações. Em PHP, literais strings podem ser criados usandos aspas simples ou duplas. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- $nome = 'Osmar J. Silva'; $cidade = "Goiânia"; Variáveis são expandidas (avaliadas) dentro de aspas duplas. Dentro de aspas simples isso não acontece: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- $nome = "Osmar J. Silva"; echo "Olá, $nome\n"; echo 'Olá, $nome'; O resultado da execução deste código será: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Olá, Osmar J. Silva Olá, $nome Aspas duplas suportam uma boa quantidade de strings de escape, como listado abaixo: Símbolo Significado ------------------------------------------------------ \" Aspas duplas \n Nova linha (Newline) \r Retorno de linha (Carriege return) \t Tab (tabulação) \\ Barra invertida (Backslash) \$ Símbolo de Dollar \{ Chave esquerda \} Chave direita \[ Colchete esquerdo \] Colchete direito \0 à \777 Caractere ASCII representado por um valor octal \x0 à \xFF Caractere ASCII representado por um valor hexadecimal Strings dentro de aspas simples reconhecem \\ para obter uma barra invertida e \' para obter uma aspas simples: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- $caminho = 'C:\\WINDOWS\\SYSTEM'; $frase = 'Shes\'s here!'; Para testar se duas strings são iguais, o operador de comparação == pode ser usado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- if($a == $b){ echo "As duas strings são iguais." } Se quisermos saber se uma determinada variável é do tipo string, podemos usar a função is_string(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <? $nome = 'Osmar J. Silva'; if(is_string($nome)){ echo 'A variável $nome é do tipo string'; } ?> |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Como usar o método getMethods() da classe Class - Como listar todos os métodos de uma classe ou interface Java em tempo de execução - RevisadoQuantidade de visualizações: 9077 vezes |
O método getMethods() da classe Class permite obter um vetor contendo todos os métodos públicos de uma classe ou interface. Este método retorna um vetor de objetos da classe Method[] e pode atirar uma exceção SecurityException. Veja que os métodos herdados de e por superclasses da classe sendo investigada são também retornados. O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton (veja como usamos o método getName() da classe Method para obter o nome do método): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe JButton try{ Class c = Class.forName("javax.swing.JButton"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName() + ", "); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Note que aqui nós estamos usando o método getName() da classe Method para retornar apenas o nome do método. Nesta seção você encontra exemplos de como obter também o tipo de retorno dos métodos de um determinada classe ou interface. A execução desse código gera uma lista gigante de métodos. Vou mostrá-los abaixo para que você tenha uma idéia do funcionamento real: getAccessibleContext(), getUIClassID(), isDefaultButton(), isDefaultCapable(), removeNotify(), setDefaultCapable(), updateUI(), getUI(), setAction(), setModel(), setUI(), addActionListener(), addChangeListener(), addItemListener(), doClick(), doClick(), getAction(), getActionCommand(), getActionListeners(), getChangeListeners(), getDisabledIcon(), getDisabledSelectedIcon(), getDisplayedMnemonicIndex(), getHideActionText(), getHorizontalAlignment(), getHorizontalTextPosition(), getIcon(), getIconTextGap(), getItemListeners(), getLabel(), getMargin(), getMnemonic(), getModel(), getMultiClickThreshhold(), getPressedIcon(), getRolloverIcon(), getRolloverSelectedIcon(), getSelectedIcon(), getSelectedObjects(), getText(), getVerticalAlignment(), getVerticalTextPosition(), imageUpdate(), isBorderPainted(), isContentAreaFilled(), isFocusPainted(), isRolloverEnabled(), isSelected(), removeActionListener(), removeChangeListener(), removeItemListener(), setActionCommand(), setBorderPainted(), setContentAreaFilled(), setDisabledIcon(), setDisabledSelectedIcon(), setDisplayedMnemonicIndex(), setEnabled(), setFocusPainted(), setHideActionText(), setHorizontalAlignment(), setHorizontalTextPosition(), setIcon(), setIconTextGap(), setLabel(), setLayout(), setMargin(), setMnemonic(), setMnemonic(), setMultiClickThreshhold(), setPressedIcon(), setRolloverEnabled(), setRolloverIcon(), setRolloverSelectedIcon(), setSelected(), setSelectedIcon(), setText(), setVerticalAlignment(), setVerticalTextPosition(), update(), contains(), getLocation(), print(), getSize(), isOpaque(), disable(), enable(), addAncestorListener(), addNotify(), addVetoableChangeListener(), computeVisibleRect(), createToolTip(), getActionForKeyStroke(), getActionMap(), getAlignmentX(), getAlignmentY(), getAncestorListeners(), getAutoscrolls(), getBaseline(), getBaselineResizeBehavior(), getBorder(), getBounds(), getClientProperty(), getComponentPopupMenu(), getConditionForKeyStroke(), getDebugGraphicsOptions(), getDefaultLocale(), getFontMetrics(), getGraphics(), getHeight(), getInheritsPopupMenu(), getInputMap(), getInputMap(), getInputVerifier(), getInsets(), getInsets(), getMaximumSize(), getMinimumSize(), getNextFocusableComponent(), getPopupLocation(), getPreferredSize(), getRegisteredKeyStrokes(), getToolTipLocation(), getToolTipText(), getToolTipText(), getTopLevelAncestor(), getTransferHandler(), getVerifyInputWhenFocusTarget(), getVetoableChangeListeners(), getVisibleRect(), getWidth(), getX(), getY(), grabFocus(), hide(), isDoubleBuffered(), isLightweightComponent(), isManagingFocus(), isOptimizedDrawingEnabled(), isPaintingForPrint(), isPaintingTile(), isRequestFocusEnabled(), isValidateRoot(), paint(), printAll(), putClientProperty(), registerKeyboardAction(), registerKeyboardAction(), removeAncestorListener(), removeVetoableChangeListener(), requestDefaultFocus(), requestFocus(), requestFocus(), requestFocusInWindow(), resetKeyboardActions(), reshape(), scrollRectToVisible(), setActionMap(), setAutoscrolls(), setBackground(), setBorder(), setComponentPopupMenu(), setDebugGraphicsOptions(), setDefaultLocale(), setDoubleBuffered(), setFocusTraversalKeys(), setFont(), setForeground(), setInheritsPopupMenu(), setInputMap(), setInputVerifier(), setMaximumSize(), setMinimumSize(), setNextFocusableComponent(), setOpaque(), setPreferredSize(), setRequestFocusEnabled(), setToolTipText(), setTransferHandler(), setVerifyInputWhenFocusTarget(), setVisible(), unregisterKeyboardAction(), firePropertyChange(), firePropertyChange(), firePropertyChange(), getRootPane(), getListeners(), paintImmediately(), paintImmediately(), repaint(), repaint(), revalidate(), setAlignmentX(), setAlignmentY(), add(), add(), add(), add(), add(), remove(), remove(), list(), list(), removeAll(), setFocusTraversalPolicyProvider(), transferFocusDownCycle(), validate(), getComponent(), getComponentCount(), getComponents(), getFocusTraversalPolicy(), invalidate(), isFocusCycleRoot(), isFocusCycleRoot(), setFocusTraversalPolicy(), addContainerListener(), applyComponentOrientation(), areFocusTraversalKeysSet(), countComponents(), deliverEvent(), doLayout(), findComponentAt(), findComponentAt(), getComponentAt(), getComponentAt(), getComponentZOrder(), getContainerListeners(), getFocusTraversalKeys(), getLayout(), getMousePosition(), insets(), isAncestorOf(), isFocusTraversalPolicyProvider(), isFocusTraversalPolicySet(), layout(), locate(), minimumSize(), paintComponents(), preferredSize(), printComponents(), removeContainerListener(), setComponentZOrder(), setFocusCycleRoot(), addPropertyChangeListener(), addPropertyChangeListener(), add(), remove(), toString(), getName(), contains(), size(), getLocation(), getParent(), setName(), list(), list(), list(), getSize(), location(), setSize(), setSize(), resize(), resize(), enable(), transferFocus(), transferFocusBackward(), addComponentListener(), addFocusListener(), addHierarchyBoundsListener(), addHierarchyListener(), addInputMethodListener(), addKeyListener(), addMouseListener(), addMouseMotionListener(), addMouseWheelListener(), bounds(), checkImage(), checkImage(), createImage(), createImage(), createVolatileImage(), createVolatileImage(), enableInputMethods(), getColorModel(), getComponentListeners(), getComponentOrientation(), getCursor(), getDropTarget(), getFocusListeners(), getFocusTraversalKeysEnabled(), getHierarchyBoundsListeners(), getHierarchyListeners(), getIgnoreRepaint(), getInputContext(), getInputMethodListeners(), getInputMethodRequests(), getKeyListeners(), getLocale(), getLocationOnScreen(), getMouseListeners(), getMouseMotionListeners(), getMouseWheelListeners(), getToolkit(), gotFocus(), hasFocus(), inside(), isBackgroundSet(), isCursorSet(), isFocusTraversable(), isFontSet(), isForegroundSet(), keyDown(), keyUp(), lostFocus(), mouseDown(), mouseDrag(), mouseEnter(), mouseExit(), mouseMove(), mouseUp(), move(), paintAll(), prepareImage(), prepareImage(), removeComponentListener(), removeFocusListener(), removeHierarchyBoundsListener(), removeHierarchyListener(), removeInputMethodListener(), removeKeyListener(), removeMouseListener(), removeMouseMotionListener(), removeMouseWheelListener(), setComponentOrientation(), setCursor(), setDropTarget(), setFocusTraversalKeysEnabled(), setFocusable(), setIgnoreRepaint(), show(), show(), transferFocusUpCycle(), getBackground(), getBounds(), getFocusCycleRootAncestor(), getFont(), getForeground(), getPeer(), getPropertyChangeListeners(), getPropertyChangeListeners(), getTreeLock(), isDisplayable(), isMaximumSizeSet(), isMinimumSizeSet(), isPreferredSizeSet(), isShowing(), isVisible(), nextFocus(), setBounds(), setBounds(), setLocale(), setLocation(), setLocation(), dispatchEvent(), getGraphicsConfiguration(), getMousePosition(), handleEvent(), isFocusable(), isLightweight(), isValid(), postEvent(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), action(), isEnabled(), isFocusOwner(), removePropertyChangeListener(), removePropertyChangeListener(), repaint(), repaint(), repaint(), wait(), wait(), wait(), equals(), hashCode(), getClass(), notify(), notifyAll(), Esta dica foi revisada e atualizada para o Java 8. |
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em CQuantidade de visualizações: 1828 vezes |
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados. A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é: \[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \] Onde: Epg ? energia potencial gravitacional (em joule, J). m ? massa do corpo (em kg). g ? aceleração da gravidade (m/s2). h ? altura do objeto em relação ao chão (em metros). Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula. Vamos ver um exemplo agora? Observe o seguinte enunciado: 1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo? Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C completo para o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // gravidade terrestre em m/s2 float gravidade = 9.80665; // massa do corpo float massa = 2; // em kg // altura do corpo em relação ao chão float altura = 1.5; // em metros // vamos calcular a energia potencial gravitacional float epg = massa * gravidade * altura; // mostramos o resultado printf("A Energia Potencial Gravitacional é: %fJ", epg); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A Energia Potencial Gravitacional é: 29.419950J |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |