Você está aqui: C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como criar um laço while infinito na linguagem C++Quantidade de visualizações: 9446 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++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matrizQuantidade de visualizações: 15286 vezes |
Exercícios Resolvidos de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matriz Pergunta/Tarefa: Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que [i]i[/i] + [i]j[/i] é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária. Sua saída deverá ser parecida com a imagem abaixo: ![]() Resposta/Solução: Veja a resolução comentada deste exercício: ---------------------------------------------------------------------- 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 <iomanip> using namespace std; int main(int argc, char *argv[]) { int matriz[3][3]; // uma matriz de três linhas e três colunas int soma_diagonal = 0; // guarda a soma dos elementos na diagonal secundária // vamos ler os valores para os elementos da matriz for(int i = 0; i < 3; i++){ // linhas for(int j = 0; j < 3; j++){ // colunas cout << "Valor para a linha " << i << " e coluna " << j << ": "; cin >> matriz[i][j]; } } // vamos mostrar a matriz da forma que ela foi informada cout << "\n\nValores na matriz\n" << endl; for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ cout << setw(5) << matriz[i][j]; } cout << "\n" << endl; } // vamos calcular a soma dos elementos da diagonal secundária int ordem = 3; // ordem da matriz for(int i = 1; i <= 3; i++){ for(int j = 1; j <= 3; j++){ if((i + j) == (ordem + 1)){ soma_diagonal = soma_diagonal + matriz[i - 1][j - 1]; } } } cout << "A soma dos elementos da diagonal secundaria e: " << soma_diagonal << endl; cout << "\n" << endl; system("PAUSE"); return EXIT_SUCCESS; } |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar uma substring em uma string C++ usando o método find() e retornar o índice do primeiro caractereQuantidade de visualizações: 10258 vezes |
Nesta dica mostrarei como podemos usar a função find() da classe String do C++ para pesquisar parte de uma palavra, frase ou texto. Se a substring for encontrada, o índice do seu primeiro caractere é retornado. Caso contrário o valor npos é retornado. 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 e C++"; cout << "A string informada foi: " << frase << endl; // agora vamos checar a existência da substring size_t pos = frase.find("Java"); // a substring foi encontrada? if(pos == string::npos){ cout << "A substring nao foi encontrada." << endl; } else{ cout << "A substring foi encontrada" << " no indice " << pos << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: A string informada foi: Gosto de Java e C++ A substring foi encontrada no indice 9 |
C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Programação MIDI usando C++ - Como usar um vetor de chars para construir uma mensagem MIDI e passá-lo para a função midiOutShortMsg() da API do WindowsQuantidade de visualizações: 2278 vezes |
Nas dicas dessa seção nós vimos como é possível enviar uma mensagem MIDI para o dispositivo de saída por meio da função midiOutShortMsg() da API do Windows. Essa função recebe um handle para o dispositivo de saída MIDI e um valor DWORD contendo a mensagem MIDI. Se você revisitar essas dicas, verá que na maioria delas nós informamos a mensagem MIDI diretamente no parâmetro da função (como um valor hexadecimal). Nesta dica mostrarei como é possível construir as mensagens MIDI usando seus valores individuais e, o que é melhor, usando valores decimais. Para isso nós vamos construir um vetor de char e informar os valores que compõem a mensagem. É importante observar que a função midiOutShortMsg() exige que a mensagem MIDI seja informada na ordem de bytes "little endian" ou seja, o status MIDI é informado no byte de ordem mais baixa. Isso é conseguido com um cast do vetor para um unsigned long. Veja o trecho de código: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- // vamos criar um vetor contendo os valores que compõem a mensagem MIDI unsigned char vetor[4]; vetor[0] = 144; // Note-on no Canal 1 vetor[1] = 40; // Nota Mi na 4ª oitava vetor[2] = 100; // Velocidade/volume da nota vetor[3] = 0; // Não é usado // e aqui é que acontece a mágica. Quando fazemos o cast do // vetor para o tipo long sem sinal, os valores são colocados em // little endian, justamente a ordem de bytes esperada pela // função midiOutShortMsg() unsigned long mensagem = *(unsigned long*)vetor; // envia a mensagem MIDI midiOutShortMsg(saida, mensagem); Note que não coloquei o código todo. Para completá-lo, veja outras dicas dessa seção. |
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Vetores e matrizes em C++ - Como passar vetores e matrizes para as suas funções C++Quantidade de visualizações: 12110 vezes |
Muitas vezes precisamos passar um vetor ou uma matriz C++ para nossas funções. O trecho de código abaixo mostra como isso é feito. Observe que a passagem de uma matriz para uma função é feita por referência, ou seja, qualquer alteração nos valores da matriz dentro do método será refletida na matriz original:---------------------------------------------------------------------- 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 usada para exibir os valores // da matriz void exibir_matriz(int matriz[], int quant) { for(int i = 0; i < quant; i++){ cout << matriz[i] << endl; } } int main(int argc, char *argv[]) { // cria uma matriz com 5 inteiros int valores[] = {54, 3, 89, 6, 1}; // passa a matriz para a função exibir_matriz() // veja que temos que enviar também a quantidade // de elementos exibir_matriz(valores, 5); system("PAUSE"); // pausa o programa return 0; } Ao executar este código C++ nós teremos o seguinte resultado: 54 3 89 6 1 |
C++ ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular potência em C++ usando uma função recursivaQuantidade de visualizações: 19329 vezes |
Nesta dica mostrarei como podemos efetuar cálculo de potência em C++ usando recursividade, ou seja, uma função que chama a si mesma repetidamente, até que o caso base (condição de parada) seja alcançado. Veja que informaremos a base e o expoente e a função nos retornará a potência da base informada. 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 <iostream> using namespace std; // função recursiva que calcula a potência de // um inteiro int potencia(int base, int expoente){ // caso base if(expoente == 0){ return 1; } // efetua mais uma chamada recursiva else{ return base * potencia(base, expoente - 1); } } // função principal do programa int main(int argc, char *argv[]){ int base = 3; int expoente = 4; cout << base << " elevado a " << expoente << " = " << potencia(base, expoente) << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: 3 elevado a 4 = 81 |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter uma string em C++ usando as funções begin(), end() e reverse()Quantidade de visualizações: 13334 vezes |
Em várias situações nós precisamos inverter a ordem dos caracteres de uma palavra, frase ou texto em C++. Para isso nós podemos usar uma combinação das funções begin(), end() e reverse() da biblioteca padrão do C++. Veja o código 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> #include <algorithm> using namespace std; // função principal do programa C++ int main(int argc, char *argv[]){ // vamos declarar um objeto da classe string string frase = "Gosto de programar em C++"; // vamos mostrar a string original cout << "String original: " << frase << endl; // agora vamos usar a função reverse() para inverter o // conteúdo da string reverse(frase.begin(), frase.end()); // e mostramos o resultado cout << "String invertida: " << frase << endl;; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executarmos este código C++ nós teremos o seguinte resultado: String original: Gosto de programar em C++ String invertida: ++C me ramargorp ed otsoG |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C++ - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausenteQuantidade de visualizações: 654 vezes |
Pergunta/Tarefa: Dado o vetor: int valores[] = {1, 8, 7, 2, 6, 5, 3}; Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos. Sua saída deverá ser parecida com: O número ausente é: 4 Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício. Veja a resolução comentada deste exercício usando 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 <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos declarar um vetor de inteiros faltando // um valor na sequência (não necessariamente ordenada) // Note a ausência do número 4 int valores[] = {1, 8, 7, 2, 6, 5, 3}; int i, soma_n, ausente, soma_elementos; int quant = 8; // tamanho do vetor + 1 // o primeiro passo é obter a soma de 1..n elementos // natuais usando a fórmula n*(n+1)/2 soma_n = (quant * (quant + 1)) / 2; // agora vamos somar os elementos do vetor soma_elementos = 0; for(i = 0; i < 7; i++){ soma_elementos = soma_elementos + valores[i]; } // agora calculamos o valor ausente ausente = soma_n - soma_elementos; // vamos mostrar o resultado cout << "O número ausente é: " << ausente << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como definir o tipo de instrumento (programa) em um evento MIDI e enviar a mensagem para a função midiOutShortMsg() da API Win32 do WindowsQuantidade de visualizações: 1018 vezes |
Vimos em dicas nessa seção como usar a função midiOutShortMsg() da API Win32 do Windows para tocar notas musicais no dispositivo de saída MIDI. No entanto, nos exemplos anteriores, a nota tocada foi no instrumento padrão, ou seja, Acoustic Grand Piano, e no canal 1. Nesta dica mostrarei como definir o instrumento e também falarei um pouco mais sobre como tocar as notas em canais diferentes. Vamos então, com muita atenção. Analisando a documentação MIDI, encontramos que uma mudança de programa (instrumento musical) no canal 1 é representada pelo código de status 192 (hexadecimal C0), seguido pelo código do instrumento a ser usado (um valor inteiro que vai de 0 a 127, e que deverá ser convertido em hexadecimal). Assim, é bom dar uma olhada nessa lista: Piano Timbres: 1 Acoustic Grand Piano 2 Bright Acoustic Piano 3 Electric Grand Piano 4 Honky-tonk Piano 5 Rhodes Piano 6 Chorused Piano 7 Harpsichord 8 Clavinet Chromatic Percussion: 9 Celesta 10 Glockenspiel 11 Music Box 12 Vibraphone 13 Marimba 14 Xylophone 15 Tubular Bells 16 Dulcimer Organ Timbres: 17 Hammond Organ 18 Percussive Organ 19 Rock Organ 20 Church Organ 21 Reed Organ 22 Accordion 23 Harmonica 24 Tango Accordion Guitar Timbres: 25 Acoustic Nylon Guitar 26 Acoustic Steel Guitar 27 Electric Jazz Guitar 28 Electric Clean Guitar 29 Electric Muted Guitar 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar Harmonics Bass Timbres: 33 Acoustic Bass 34 Fingered Electric Bass 35 Plucked Electric Bass 36 Fretless Bass 37 Slap Bass 1 38 Slap Bass 2 39 Synth Bass 1 40 Synth Bass 2 String Timbres: 41 Violin 42 Viola 43 Cello 44 Contrabass 45 Tremolo Strings 46 Pizzicato Strings 47 Orchestral Harp 48 Timpani Ensemble Timbres: 49 String Ensemble 1 50 String Ensemble 2 51 Synth Strings 1 52 Synth Strings 2 53 Choir "Aah" 54 Choir "Ooh" 55 Synth Voice 56 Orchestral Hit Brass Timbres: 57 Trumpet 58 Trombone 59 Tuba 60 Muted Trumpet 61 French Horn 62 Brass Section 63 Synth Brass 1 64 Synth Brass 2 Reed Timbres: 65 Soprano Sax 66 Alto Sax 67 Tenor Sax 68 Baritone Sax 69 Oboe 70 English Horn 71 Bassoon 72 Clarinet Pipe Timbres: 73 Piccolo 74 Flute 75 Recorder 76 Pan Flute 77 Bottle Blow 78 Shakuhachi 79 Whistle 80 Ocarina Synth Lead: 81 Square Wave Lead 82 Sawtooth Wave Lead 83 Calliope Lead 84 Chiff Lead 85 Charang Lead 86 Voice Lead 87 Fifths Lead 88 Bass Lead Synth Pad: 89 New Age Pad 90 Warm Pad 91 Polysynth Pad 92 Choir Pad 93 Bowed Pad 94 Metallic Pad 95 Halo Pad 96 Sweep Pad Synth Effects: 97 Rain Effect 98 Soundtrack Effect 99 Crystal Effect 100 Atmosphere Effect 101 Brightness Effect 102 Goblins Effect 103 Echoes Effect 104 Sci-Fi Effect Ethnic Timbres: 105 Sitar 106 Banjo 107 Shamisen 108 Koto 109 Kalimba 110 Bagpipe 111 Fiddle 112 Shanai Sound Effects: 113 Tinkle Bell 114 Agogo 115 Steel Drums 116 Woodblock 117 Taiko Drum 118 Melodic Tom 119 Synth Drum 120 Reverse Cymbal Sound Effects: 121 Guitar Fret Noise 122 Breath Noise 123 Seashore 124 Bird Tweet 125 Telephone Ring 126 Helicopter 127 Applause 128 Gun Shot A especificação MIDI define que o canal 10 seja reservado para os kits de percussão. Os instrumentos abaixo possuem os números de notas a serem enviados neste canal. 35 Acoustic Bass Drum 36 Bass Drum 1 37 Side Stick 38 Acoustic Snare 39 Hand Clap 40 Electric Snare 41 Low Floor Tom 42 Closed High Hat 43 High Floor Tom 44 Pedal High Hat 45 Low Tom 46 Open High Hat 47 Low Mid Tom 48 High Mid Tom 49 Crash Cymbal 1 50 High Tom 51 Ride Cymbal 1 52 Chinese Cymbal 53 Ride Bell 54 Tambourine 55 Splash Cymbal 56 Cowbell 57 Crash Cymbal 2 58 Vibraslap 59 Ride Cymbal 2 60 High Bongo 61 Low Bongo 62 Mute High Conga 63 Open High Conga 64 Low Conga 65 High Timbale 66 Low Timbale 67 High Agogo 68 Low Agogo 69 Cabasa 70 Maracas 71 Short Whistle 72 Long Whistle 73 Short Guiro 74 Long Guiro 75 Claves 76 High Wood Block 77 Low Wood Block 78 Mute Cuica 79 Open Cuica 80 Mute Triangle 81 Open Triangle É uma lista bem longa e ficará a ser cargo estudá-la ou usá-la como referência. Meu interesse maior é o código C/C++. Assim, vamos ver logo como definir o instrumento no canal 1 como Overdriven Guitar. Este instrumento possui o código 30 mas, na programação, devemos diminuí-lo em 1, ficando 29, e, ao passarmos para hexadecimal teremos 1D. A mudança de programa no canal 1 é representada pelo código 192, o que em hexadecimal é C0. Pronto, agora basta construirmos o DWORD da forma que fizemos nas dicas anteriores e chamar a função midiOutShortMsg(). 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 <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]) { unsigned int erro; // guarda o erro caso algo dê errado HMIDIOUT saida; // handle para o dispositivo de saída MIDI. // vamos abrir o dispositivo de saída MIDI erro = midiOutOpen(&saida, MIDI_MAPPER, 0, 0, CALLBACK_NULL); if (erro != MMSYSERR_NOERROR) { printf("Não foi possível abrir o mapeador MIDI: %d\n", erro); } else { printf("Mapeador MIDI aberto com sucesso\n"); } // vamos definir o instrumento como Overdriven Guitar // no canal 1 midiOutShortMsg(saida, 0x00001DC0); // vamos tocar o dó central com velocidade 100 midiOutShortMsg(saida, 0x00643C90); Sleep(1000); // a nota vai durar 1 segundo // dispara a mensagem Note-off midiOutShortMsg(saida, 0x00643C80); // agora vamos fechar o dispositivo de saída MIDI midiOutClose(saida); system("PAUSE"); return EXIT_SUCCESS; } Execute esse código e ouça um nota dó sendo tocada na guitarra com uma linda distorção. Se você quiser tocar a nota nó no canal 2 ou canal 3, basta usar C1, C2, e assim por diante. Uma última observação é você ficar atento ao fato de que os códigos de Note-on e Note-off para o canal 1 é 90 e 80 (em hexadecimal). Se for no canal 2, os códigos correspondentes serão 91 e 81 (sempre em hexadecimal). |
Vamos testar seus conhecimentos em Java |
Analise o seguinte código Javadouble a = 0 / 5.0; System.out.println(a); Qual é o resultado de sua execução? A) Infinity B) NaN C) Uma exceção java.lang.ArithmeticException: / by zero D) 0.0 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
Como é chamada a área de relevo mais elevado entre cursos de água contíguos e que serve para delimitação das bacias hidrográficas? A) Vale fluvial. B) Colúvio. C) Interflúvio. D) Planalto. E) Planície pluvial. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Vantagens e Desvantagens do Concreto Armado O concreto armado é composto pelo concreto simples e por barras de aço estrategicamente posicionadas no interior do concreto. O trabalho conjunto é garantido pela aderência entre os materiais que o compõem e, com isso, o concreto armado une a resistência à compressão do concreto com a resistência à tração do aço. Com relação às características do concreto armado, assinale a alternativa correta: A) O concreto armado tem elevada resistência à compressão e baixa resistência à tração. B) As armaduras colocadas na parte inferior de vigas de concreto absorvem os esforços de tração de uma peça sujeita à flexão e controlam o aparecimento de fissuras. C) As armaduras de peças de concreto armado se limitam a absorver os esforços gerados por solicitações normais de tração. D) É preciso ter cuidado ao utilizar o concreto e o aço em conjunto, já que são materiais distintos. E) O concreto armado surgiu apenas no século XX, quando passou a ser utilizado também no Brasil. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Características do concreto armado A reologia é o ramo da mecânica que estuda a evolução de deformações de um material por causas tencionais ao longo do tempo. O fenômeno reológico que independe do carregamento e ocorre devido à variação de umidade do concreto, gerando deformações diferenciais e tensões internas aos elementos de concreto, pode ser classificado como: A) fissuração. B) retração. C) fluência. D) deformação lenta. E) variação de temperatura. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil dos prepostos e preponentes Considera-se ___________ a entrega de papéis, bens ou valores ao ____________, encarregado pelo __________, se os recebeu sem ______________, salvo nos casos em que haja prazo para reclamação. Qual opção abaixo preenche corretamente as lacunas? A) Perfeita - preponente - preposto - protesto. B) Inválida - preponente - preposto - protesto. C) Inválida - preposto - preponente - protocolo. D) Perfeita - preposto - preponente - protocolo. E) Perfeita - preposto - preponente - protesto. 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |