Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
C++ ::: STL (Standard Template Library) ::: unordered_map |
Como contar as frequências de palavras em uma frase ou texto em C++ usando um unordered_mapQuantidade de visualizações: 954 vezes |
|
Nesta dica mostrarei como podemos usar o mapa não ordenado (unordered_map) da linguagem C++ para contar as frequências das palavras individuais de uma palavra ou texto. O exemplo mostrado aqui serve como base para a criação de aplicações muito interessantes. Veja o código C++ completo:
#include <string>
#include <iostream>
#include <unordered_map>
#include <bits/stdc++.h>
using namespace std;
// protótipo da função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase);
int main(int argc, char *argv[]){
// vamos declarar uma frase
// retirei acentos e pontuações de propósito
string frase = "Gosto de Java e Python pois quero aprender Java";
// mostramos a frase
cout << "A frase é: " << frase << endl;
// chamamos a função que exibe as frequencias
cout << "\nA frequência das palavras é:\n" << endl;
exibir_frequencias(frase);
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
// função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase){
// vamos declarar um mapa que terá como chave uma string
// e como valor um int
unordered_map<string, int> frequencias;
// agora convertemos a frase recebido como argumento
// em um objeto stringstream
stringstream ss(frase);
// e percorremos as palavras individualmente
string palavra;
while (ss >> palavra){
// essa palavra já existe no mapa?
if (frequencias.find(palavra) == frequencias.end()){
// adiciona esta palavra ao mapa
frequencias[palavra] = 1;
}
else{
// já existe. Vamos incrementar esta frequência
frequencias[palavra] = frequencias[palavra] + 1;
}
}
// agora percorremos o mapa não ordenado, acessando
// cada chave e mostrando a frequencia de cada palavra
unordered_map<string, int>:: iterator p;
for (p = frequencias.begin(); p != frequencias.end(); p++){
cout << "(" << p->first << ", " << p->second << ")\n";
}
}
Ao executar este código C++ nós teremos o seguinte resultado: A frase é: Gosto de Java e Python pois quero aprender Java A frequência das palavras é: (aprender, 1) (quero, 1) (pois, 1) (Gosto, 1) (Java, 2) (e, 1) (de, 1) (Python, 1) |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar ponteiros para controlar um laço while em C++Quantidade de visualizações: 9657 vezes |
É possível usar ponteiros para controlar a execução de um laço while em C++. Comece analisando o seguinte trecho de código:// uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; if(*letra) cout << "True"; else cout << "False"; Aqui o valor "True" será exibido, visto que o ponteiro *letra está apontando para um local da matriz de caracteres nome[] que é diferente de NULL. Veja agora: // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // posição 0 // vamos atingir o final da matriz // de caracteres letra++; // posição 1 letra++; // posição 2 letra++; // posição 3 letra++; // posição 4 letra++; // posição 5 letra++; // posição 6 letra++; // NULL if(*letra) cout << "True"; else cout << "False"; Como sabemos que a matriz de caracteres nome[] contém sete caracteres (de 0 a 6), incrementamos o ponteiro *letra até que este aponte para o caractere que marca o fim da matriz. Assim, o valor "False" é exibido. Veja agora um laço while que tira proveito do que vimos aqui para exibir as letras da palavra "Arquivo" separadamente usando um ponteiro:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// uma matriz de caracteres
char nome[] = "Arquivo";
// aponta para a primeira letra
char *letra = nome;
// vamos usar o laço while para
// imprimir as letras separadamente
while(*letra){
cout << *letra << " ";
letra++;
}
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Portugol Básico |
Exercícios Resolvidos de Portugol - Escreva um programa Portugol para calcular e imprimir o número de lâmpadas necessáriasQuantidade de visualizações: 733 vezes |
|
Pergunta/Tarefa: Escreva um programa Portugol para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado. Sua saída deverá ser parecida com: Informe a potência da lâmpada (em watts): 100 Informe a largura do cômodo (em metros): 6 Informe o comprimento do cômodo (em metros): 4 Serão necessárias 4 lâmpadas. Veja a resolução completa para o exercício em Portugol, comentada linha a linha (na resolução eu usei o Portugol Webstudio):
programa {
// vamos incluir a biblioteca Tipos
inclua biblioteca Tipos --> tp
funcao inicio() {
// variáveis usadas na resolução do problema
real potencia_lampada, largura_comodo, comprimento_comodo
real area_comodo, potencia_total
inteiro quant_lampadas
// vamos ler a potência da lâmpada
escreva("Informe a potência da lâmpada (em watts): ")
leia(potencia_lampada)
// vamos ler a largura do cômodo
escreva("Informe a largura do cômodo (em metros): ")
leia(largura_comodo)
// agora vamos ler o comprimento do cômodo
escreva("Informe o comprimento do cômodo (em metros): ")
leia(comprimento_comodo)
// agora vamos calcular a área do cômodo
area_comodo = largura_comodo * comprimento_comodo
// calculamos a potência total necessária para iluminar
// todo o cômodo
potencia_total = area_comodo * 18
// e finalmente calculamos a quantidade de lâmpadas necessárias
quant_lampadas = tp.real_para_inteiro(potencia_total / potencia_lampada)
// será necessário no mínimo uma lâmpada
se (quant_lampadas == 0) {
quant_lampadas = quant_lampadas + 1
}
// e mostramos o resultado
escreva("Serão necessárias ", quant_lampadas, " lâmpadas.")
}
}
|
Python ::: Fundamentos da Linguagem ::: Passos Iniciais |
Como obter a entrada do usuário usando o método raw_input() - Atualizado para Python 3.0Quantidade de visualizações: 8800 vezes |
Até pouco tempo era possível usar o método raw_input(), nativo do Python, para ler a entrada do usuário. O código abaixo, por exemplo, funcionava corretamente no Python 2.5:
# obtém o nome do usuário
nome = raw_input("Por favor, informe seu nome: ")
print "Ola, " + nome + "! Voce tambem gosta de Python?"
No Python 3.0 em diante, a execução deste código exibe o seguinte erro de tempo de execução:
Exception has occurred: NameError
name 'raw_input' is not defined
File "C:\estudos_python\estudos.py", line 4, in main
nome = raw_input("Por favor, informe seu nome: ")
File "C:\estudos_python\estudos.py", line 7, in <module>
main()
A correção para esta exceção, é usar somente a função input(). Veja:
def main():
nome = input("Por favor, informe seu nome: ")
print("Olá, " + nome + "! Voce tambem gosta de Python?")
if __name__== "__main__":
main()
A saída deste código será parecida com: Por favor, informe seu nome: Osmar Olá, Osmar! Voce tambem gosta de Python? |
Python ::: Dicas & Truques ::: Data e Hora |
Como construir uma data em Python usando o construtor da classe datetimeQuantidade de visualizações: 7161 vezes |
|
Nesta dica mostrarei como podemos usar o construtor da classe datetime do Python para construir e retornar uma nova data. Note que estou fornecendo a data para construtor da classe datetime usando o ano, o mês e o dia. Veja o código Python completo para o exemplo:
from datetime import datetime
# função principal do programa
def main():
# vamos definir o dia, mês e ano
dia = 20
mes = 4
ano = 1980
# Constrói um datetime (ano, mês, dia)
data = datetime(ano, mes, dia)
# Exibe o conteúdo do datetime
print("A data construída foi {0}".format(data))
# Obtém o ano da data recém-criada
print("O ano da data construída foi: {0}".format(data.year))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: A data construída foi 1980-04-20 00:00:00 O ano da data construída foi: 1980 |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
C - Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra Linear |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





