Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Como retornar o caractere associado a um código ASCII em C++ - Ler um código ASCII e retornar o caractere correspondente - Desafio de Programação Resolvido em C++Quantidade de visualizações: 477 vezes |
Pergunta/Tarefa: Escreva um programa C++ que pede para o usuário informar um código ASCII e retorne o caractere (letra, número ou pontuação) correspondente. Sua saída deverá ser parecida com: Informe o código ASCII: 65 Você informou o código ASCII: 65 O caractere correspondente é: A Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <iostream> using namespace std; // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int codigo; char caractere; // vamos pedir para o usuário informar um código ASCII cout << "Informe o código ASCII: "; // vamos ler o código ASCII informado cin >> codigo; // agora vamos obter o caractere correspondente caractere = (char)codigo; // e mostramos o resultado cout << "Você informou o código ASCII: " << codigo << endl; cout << "O caractere correspondente é: " << caractere << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
![]() |
C++ ::: Win32 API (Windows API) ::: Edit Control |
Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do WindowsQuantidade de visualizações: 10225 vezes |
O processo de definir a cor de fundo para um Edit Control em tempo de execução usando apenas C++ e a API do Windows é um pouco complicado. A técnica apresentada aqui pode não ser a mais eficiente, mas funciona mesmo (testado como VC++ 2005 e Windows XP). Note que estarei usando as funções CreateSolidBrush(), GetDlgCtrlID(), SetBkMode() e SetBkColor() da WinAPI. 1 - Comece adicionando as linhas na parte de variáveis globais de sua aplicação: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- HBRUSH hbrushEditBox = CreateSolidBrush(RGB(255, 255, 255)); HDC hdcEdit; int id_edit_control; HWND edit_window; 2 - Modifique ou adicione um case para a mensagem WM_CTLCOLOREDIT da seguinte forma: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- case WM_CTLCOLOREDIT: hdcEdit = (HDC)wParam; edit_window = HWND(lParam); id_edit_control = GetDlgCtrlID(edit_window); if(id_edit_control == IDC_EDIT1){ SetBkMode(hdcEdit, TRANSPARENT); SetBkColor(hdcEdit,(LONG)hbrushEditBox); return (LONG)hbrushEditBox; } return (LRESULT)CreateSolidBrush(RGB(255, 255, 255)); 3 - A cor de fundo do Edit Control com ID IDC_EDIT1 será modificada para vermelho quando clicarmos no botão com o ID IDC_BUTTON1. Veja o case para este botão (dentro do case WM_COMMAND): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- case IDC_BUTTON1: // ID do botão // Define uma nova cor de fundo para o Edit Control // com o ID IDC_EDIT1 // Vermelho como cor de fundo hbrushEditBox = CreateSolidBrush(RGB(255, 0, 0)); // Atualiza o Edit Control InvalidateRect(GetDlgItem(hwnd, IDC_EDIT1), 0, TRUE); break; |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como usar a classe/contêiner vector da STL em seus programas C++Quantidade de visualizações: 8948 vezes |
O vetor, ou vector, é uma das classes contêineres mais simples da STL - Standard Template Library do C++. Um vector se comporta como um vetor, ou seja, uma matriz de uma linha e várias colunas, ou seja, seus elementos estão dispostos em posições contiguas na memória. O que diferencia um vector de um array comum é que o tamanho de um vector pode ser modificado dinamicamente. A especificação do template da classe vector é: template <class T, class Allocator = allocator<T>> class vector Aqui T é o tipo de dados sendo armazenado (já ouvir falar em genéricos, não?) e Allocator define o modelo de alocação de armazenagem. Por padrão, o template da classe allocator para o tipo T é usado, o que define o modelo de alocação de memória mais simples e independente de valores. Objetos da classe vector são úteis nas seguintes situações: a) Acessar os elementos individualmente usando seus índices (tempo constante); b) Percorrer os elementos em qualquer ordem (tempo linear); b) Adicionar ou remover elementos no final do contêiner (tempo constante amortizado). Para usarmos um vector em nossos programas C++ temos que incluir este contêiner da seguinte forma: #include <vector> Veja um trecho de código no qual criamos um vector, inserimos três inteiros e finalmente usamos um iterador para percorrer os elementos e imprimir seus valores: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]){ // um vector vazio que conterá inteiros vector<int> valores; // vamos inserir três elementos valores.push_back(54); valores.push_back(13); valores.push_back(87); // vamos percorrer o vector e exibir os elementos vector<int>::iterator it; for(it = valores.begin(); it < valores.end(); it++){ cout << *it << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executarmos este código C++ nós teremos o seguinte resultado: 54 13 87 |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir substrings em strings C++ usando a função replace()Quantidade de visualizações: 10685 vezes |
Nesta dica mostrarei como podemos usar a função replace() da classe String do C++ para substituir parte de uma palavra, frase ou texto, ou seja, substituir uma substring em uma string. Para isso nós vamos usar a seguinte assinatura da função replace():string& replace(size_t pos1, size_t n1, const string& str); Veja o código C++ completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos criar uma string string frase = "Gosto de Java"; cout << "A frase e: " << frase << endl; // vamos substituir Java por C++ frase.replace(9, 4, "PHP"); // e mostramos o resultado cout << "Depois da substituicao: " << frase << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: A frase é: Gosto de Java Depois da substituição: Gosto de PHP |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: STL Vector C++ |
Exercício Resolvido de C++ - Escreva um programa C++ com uma função chamada possui_numeros() que recebe um Vector de strings como argumentoQuantidade de visualizações: 326 vezes |
Pergunta/Tarefa: Escreva um programa C++ com uma função chamada possui_numeros() que recebe um Vector de strings como argumento e retorna outro Vector contendo apenas as strings que possuem um ou mais números. Se nenhuma das strings recebidas passar no teste, retorne um Vector vazio. Sua saída deverá ser parecida com: Elementos do Vector original: livro mesa7 cami45sa porta Palavras que possuem um ou mais números: mesa7 cami45sa Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <iostream> #include <vector> using namespace std; // função que recebe um vetor de strings e retorna // outro vector contendo apenas as strings que possuem // um ou mais números vector<string> possui_numeros(vector<string> palavras) { // para guardar o resultado vector<string> resultado; // vamos percorrer os itens do vector recebido for(string palavra : palavras) { // agora percorremos os caracteres de cada string for(char carac : palavra) { // é um caractere? if(isdigit(carac)) { // adicionamos no segundo vector resultado.push_back(palavra); break; } } } // retorna o vector obtido return resultado; } // função principal do programa int main(int argc, char *argv[]){ // vamos criar um vector de palavras vector<string> palavras = {"livro", "mesa7", "cami45sa", "porta"}; // vamos mostrar o conteúdo do vector original cout << "Elementos do Vector original:\n"; for (string palavra : palavras) { cout << palavra << " "; } // agora obtemos um vector com as palavras que contenham um ou mais // números vector<string> resultado = possui_numeros(palavras); // e mostramos o resultado cout << "\n\nPalavras que possuem um ou mais números:\n"; for (string palavra : resultado) { cout << palavra << " "; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como criar um laço while infinito na linguagem C++Quantidade de visualizações: 9445 vezes |
É possível criar um laço while infinito em C++ simplesmente fornecendo o valor true para o teste da condição. Veja:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // um laço while infinito int valor = 0; while(true){ cout << valor << "\n"; valor++; if(valor > 10) break; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Veja que aqui nós usamos a instrução break para interromper a execução do laço. Tenha o cuidado de sempre monitorar os laços infinitos. Se não houver nenhum ponto de parada, seu programa executará indefinidamente até que sua máquina seja desligada ou o programa seja forçosamente terminado. |
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
C++ Windows API - Como ler o conteúdo de um arquivo usando a função ReadFile() da Win32 APIQuantidade de visualizações: 8866 vezes |
A função ReadFile() é usada quando queremos ler o conteúdo de um arquivo. A leitura se inicia na posição zero do arquivo e mantém um ponteiro de arquivo, a partir do qual as leituras subsequentes ocorrerão. Esta função pode ser usada para leituras síncronas e assíncronas. Para leituras apenas assíncronas devemos usar ReadFileEx(). Veja seu protótipo na documentação da API do Windows: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- BOOL WINAPI ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); Antes de vermos um exemplo de como usar a função ReadFile(), vamos dar uma olhada em seus parâmetros: a) HANDLE hFile - Este é o handle para o arquivo a partir do qual queremos ler. Tal handle deve ser criado com o direito de acesso GENERIC_READ. b) LPVOID lpBuffer - Um ponteiro para o buffer que receberá os dados lidos do arquivo. c) DWORD nNumberOfBytesToRead - O número máximo de bytes a serem lidos de cada vez. Geralmente este número está relacionado à quantidade de bytes dos elementos do buffer. d) LPDWORD lpNumberOfBytesRead - Um ponteiro para uma variável que receberá o número de bytes lidos. A função ReadFile() define o valor desta variável como 0 antes de cada leitura e verificação de erros. e) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro. A função ReadFile() retorna quando um erro ocorre ou a quantidade de bytes solicitados é alcançada. Veja um trecho de código no qual lemos o conteúdo de um arquivo chamado testes.txt: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> #include <windows.h> #define TAM_BUFFER 256 // tamanho do buffer em bytes using namespace std; int main(int argc, char *argv[]){ // nome do arquivo CHAR arquivo[] = "C:\\testes.txt"; CHAR buffer[TAM_BUFFER]; // buffer para o conteúdo do arquivo DWORD nIn; // bytes lidos // vamos abrir o arquivo para leitura. // se o arquivo não existir uma mensagem de erro é exibida. HANDLE hArquivo = CreateFile(arquivo, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hArquivo == INVALID_HANDLE_VALUE){ cout << "Erro ao abrir o arquivo: " << GetLastError() << endl; } else{ // arquivo aberto com sucesso. Vamos ler while(ReadFile(hArquivo, buffer, TAM_BUFFER, &nIn, NULL) && nIn > 0){ cout << "Efetuei a leitura de " << nIn << " bytes." << endl; // vamos adicionar o caractere de final de linha // caso os bytes lidos não preencham todo o buffer buffer[nIn] = 0; cout << "Conteudo da leitura: " << buffer << endl; } } // vamos fechar o handle CloseHandle(hArquivo); system("PAUSE"); return EXIT_SUCCESS; } |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Arquivos e diretórios em C++ - Como excluir um arquivo usando a função remove() do C++Quantidade de visualizações: 10383 vezes |
Em algumas situações nossos códigos C++ precisam excluir arquivos. Isso pode ser feito com o auxílio da função remove() ou _remove(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:int remove(const char *filename); Se o arquivo for excluído com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores: a) ENOENT - No such file or directory - O caminho do arquivo é inválido; b) EACCESS - Acesso negado - Algum outro programa está usando este arquivo e mantém controle sobre o mesmo. Veja um trecho de código no qual excluimos um arquivo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos excluir este arquivo char arquivo[] = "C:\\Dev-Cpp\\arquivo.txt"; // vamos testar se o arquivo foi excluído com sucesso if(remove(arquivo) != 0){ cout << "Erro: " << strerror(errno) << endl; } else{ cout << "Arquivo excluído com sucesso" << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } É possível usar a versão Unicode de remove(). O método _wremove(), também presente em io.h or stdio.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos excluir este arquivo wchar_t arquivo[] = L"C:\\Dev-Cpp\\arquivo.txt"; // vamos testar se o arquivo foi excluído com sucesso if(_wremove(arquivo) != 0){ cout << "Erro: " << strerror(errno) << endl; } else{ cout << "Arquivo excluído com sucesso" << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código nós teremos o seguinte resultado: Arquivo excluído com sucesso. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como usar a instrução switch em C++Quantidade de visualizações: 10501 vezes |
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários else if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int valor = 4; switch(valor){ case 0: cout << "Valor e igual a 0" << endl; break; case 1: cout << "Valor e igual a 1" << endl; break; case 2: cout << "Valor é igual a 2" << endl; break; default: cout << "Nenhuma das anteriores" << endl; } system("PAUSE"); return EXIT_SUCCESS; } Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada. A variável fornecida para uma instrução switch pode ser de qualquer tipo integral, ou de um tipo criado pelo usuário mas que pode ser convertido para um tipo integral (mesmo que seja uma conversão forçada - cast). |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Formas: Confecção e colocação O concreto deve estar curado e liberado para a remoção das formas segundo recomendações técnicas. Quando não se utiliza concreto especial ou aditivo acelerador de pega, para vigas de pequeno vão, qual é o prazo mínimo para a retirada das formas inferiores, com a manutenção das principais escoras? A) Cinco dias. B) Sete dias. C) Dez dias. D) Quatorze dias. E) Vinte e um dias. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Evolução das estruturas No final do século XIX, a alvenaria utilizada nas grossas paredes portantes e nas cúpulas, começa a perder a sua importância e seu destaque nas construções. Assinale abaixo a alternativa correta quanto às razões deste fato: Selecione a resposta: A) O alto custo deste sistema devido à mão de obra especializada. B) O longo tempo de execução dos arranha-céus executados em alvenaria de pedra. C) A dificuldade em transportar e em armazenar o material para a execução da estrutura. D) A possibilidade da construção de altos edifícios nos centros urbanos, feitos em aço. E) A inadequação estética conforme os movimentos artísticos da época. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Perda de Carga Localizada, Acessórios de Tubulação Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?". Qual o comprimento equivalente das perdas de cargas singulares da tubulação anteriormente citada, considerando que o tubo perde linearmente 0,135 m de carga por metros de tubulação? Selecione a resposta: A) 9 m. B) 14 m. C) 10 m. D) 12 m. E) 8 m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptvar a = new Array(1, 2, 3); for (var i in a) { window.alert("a[i] = " + a[i]); } Quantas vezes o diálogo alert será exibido? A) 3 vezes (uma vez para cada elemento do array). B) 4 vezes (uma vez para cada elemento e um alert adicional para a propriedade length do array). C) 3 ou 4 vezes, dependendo do navegador. D) O laço for...in não existe em JavaScript e vai provocar um erro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética profissional, social, política Se a maior preocupação de Maquiavel é o Estado, poderíamos dizer que isso o situa no presente temporal. A respeito disto, afirma Sadek (1995, p. 17): "De fato, sua preocupação em todas as suas obras é o Estado. Não o melhor Estado, aquele tantas vezes imaginado, mas que nunca existiu. Mas o Estado real, capaz de impor a ordem". A partir do trecho citado, assinale a alternativa correta: A) Para Maquiavel, o tempo presente do Estado deve ser considerado pela ética. B) Para Maquiavel, a ética está associada ao exercício da ordem. C) Para Maquiavel, a ética está atrelada a uma idealização da ação na política. D) Para Maquiavel, a ordem é fruto de um Estado ético. E) Para Maquiavel, o Estado existe enquanto mantenedor da ética. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Java - Exercícios Resolvidos de Java - Como calcular e exibir os 50 primeiros números primos em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |