Você está aqui: C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar vetores e matrizes (arrays) na linguagem C++Quantidade de visualizações: 37717 vezes |
Vetores e matrizes, também chamados de arrays em programação, são grupos consecutivos de locais na memória que possuem o mesmo tipo de dados, ou seja, um vetor ou matriz em C++ pode conter apenas elementos do mesmo tipo. Um vetor é uma matriz de um coluna e várias linhas, enquanto uma matriz é a matriz propriamente dita, ou seja, que possui várias linhas e várias colunas. Veja um trecho de código no qual temos um vetor contendo 5 elementos do tipo int: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; int main(int argc, char *argv[]) { // declara e inicializa a matriz int valores[5] = {65, 3, 8, 41, 12}; // exibe os elementos da matriz for(int i = 0; i < 5; i++){ cout << "Posição: " << i << " - Valor: " << valores[i] << endl; } system("PAUSE"); // pausa o programa return 0; } Ao executarmos este código nós teremos o seguinte resultado: Posição: 0 - Valor: 65 Posição: 1 - Valor: 3 Posição: 2 - Valor: 8 Posição: 3 - Valor: 41 Posição: 4 - Valor: 12 Pressione qualquer tecla para continuar. . . Aqui nós usamos a técnica de declarar e inicializar o vetor em uma mesma linha. Em seguida usamos um laço para percorrer todos os elementos. Veja que os elementos do vetor são acessados usando um índice que começa em 0 e vai até a quantidade de elementos menos 1. Veja agora um trecho de código que declara um vetor e inicializa seus elementos usando um laço for: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; int main(int argc, char *argv[]) { // declara a matriz int valores[5]; // inicializa os elementos usando um laço for(int i = 0; i < 5; i++){ valores[i] = 2 * i; } // exibe os elementos da matriz for(int i = 0; i < 5; i++){ cout << "Posição: " << i << " - Valor: " << valores[i] << endl; } system("PAUSE"); // pausa o programa return 0; } Ao executarmos este código nós teremos o seguinte resultado: Posição: 0 - Valor: 0 Posição: 1 - Valor: 2 Posição: 2 - Valor: 4 Posição: 3 - Valor: 6 Posição: 4 - Valor: 8 Pressione qualquer tecla para continuar. . . É importante notar que, se não inicializados, os valores dos elementos de um vetor poderão guardar valores aleatórios. Jamais confie que eles terão o valor 0 por padrão. |
![]() |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva uma função C++ que recebe três números inteiros e retorna o menor delesQuantidade de visualizações: 441 vezes |
Pergunta/Tarefa: Escreva um programa C++ que contenha uma função, método ou procedimento que recebe três números inteiros e retorne o menor deles como um inteiro. Seu método não deve produzir nenhuma saída, apenas retornar o menor número entre os três argumentos fornecidos. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 10 Informe o terceiro número: 7 O menor número é: 7 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 <algorithm> using namespace std; // função que recebe três números e retorna o menor deles int menor(int a, int b, int c){ return min(min(a, b), c); } // função principal do programa int main(int argc, char *argv[]){ int n1, n2, n3, menor_numero; // vamos pedir para o usuário informar três // números inteiros cout << "Informe o primeiro número: "; cin >> n1; cout << "Informe o segundo número: "; cin >> n2; cout << "Informe o terceiro número: "; cin >> n3; // agora vamos calcular o menor número menor_numero = menor(n1, n2, n3); // e mostramos o resultado cout << "O menor numero é: " << menor_numero << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
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: 8838 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #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++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como criar um laço while infinito na linguagem C++Quantidade de visualizações: 9402 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #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. |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
JavaScript - Como calcular o seno de um número ou ângulo em JavaScript usando a função sin() do objeto Math |
Códigos Fonte |
![]() 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 |
![]() 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 |