Programação em C/C++

Buscar aula:

Aula 69 – Números aleatórios não repetidos

Aula 68 – Como ganhar na Mega Sena

Aula 67 – Problema das letras – OBI 2014

Aula 66 – Interface gráfica, Framework e um pouco de Java

Aula 65 – Dúvidas e Leitura de arquivos

Aula 64 – Entendendo e corrigindo erros

Aula 63 – Rodar programa dentro de outro

Aula 62 – Argc e Argv – Argumentos para um programa

Aula 61 – Simulador de extrato bancário – parte 2

Aula 60 – Simulador de extrato bancário – parte 1

Aula 59 – Respostas, iniciantes, novidades e muito mais

Aula 58 – Conversor Celsius e Fahrenheit

Lógica de Programação – Aula 5 – Bibliotecas e Estruturas de repetição

Lógica de Programação – Aula 4 – Primeiro projeto

Lógica de Programação – Aula 3 – Pseudocódigo

Lógica de programação – Aula 2 – Fluxogramas

Aula 57 – Conjuntos – Parte 2

Lógica de Programação – Aula 1 – texto

Aula 56 – Meses em texto e número

Aula 55 – Conjuntos – Parte 1

Aula 54 – Torre de Hanoi

Aula 53 – Append, Float, Ponteiros, Struct e OO

Aula 52 – Consulta de estoque

Aula 51 – Problema do troco

Aula 50 – Multiplicar sem multiplicar

Aula 49 – Jogo da Forca – Parte 3

Aula 48 – Jogo da Forca – Parte 2

Aula 47 – Jogo da Forca – Parte 1

Aula 46 – Respondendo perguntas

Aula 45 – Orientação a Objetos – Parte 2

Aula 44 – Orientação a Objetos – Início

Aula 43 – Respondendo a perguntas

Aula 42 – Criptografia – Atualização

Aula 41 – Descompressão de dados

Aula 40 – Respondendo a Perguntas e Compressão de dados

Aula 39 – Criptografia – Parte 4

Aula 38 – Criptografia – Parte 3

Aula 37 – Criptografia – Parte 2

Aula 36 – Criptografia – Parte 1

Aula 35 – Encontrar string em string

Aula 34 – Pilha dinâmica

Aula 33 – Ponteiros e Malloc

Aula 32 – Passagem por referência (Revisão)

Aula 31 – Estruturas de Dados: Lista Estática

Aula 30 – Estruturas de Dados: Fila Estática – Organização

Aula 29 – Percorrendo vetores do tipo char (strings)

Aula 28 – Respondendo a perguntas: Atoi e Itoa

Aula 27 – Estruturas de Dados: Fila Estática

Aula 26 – Estruturas de Dados: Pilha Estática

Aula 25 – Respondendo perguntas

Aula 24 – Métodos de Ordenação: Quick Sort

Aula 23 – Respondendo a perguntas e Bubble Sort

Aula 22 – Métodos de Ordenação – Selection Sort

Aula 21 – Conceitos iniciais de OO

Aula 20 – Arquivos – Agenda

Aula 19 – Manipulação de arquivos – Modularização

Aula 18 – Manipulação de arquivos

Aula 17 – Tópicos Importantes

Aula 16 – Ponteiros

Aula 15 – Passagem por referência

Aula 14 – Recursividade

Aula 13 – Funções

Aula 12 – Desafio Jogo da Forca

Aula 11 – Tipos de Dados compostos: Enum e Struct

Aula 10 – Manipulação de Strings e biblioteca String.h

Aula 9 – Manipulação de caracteres e biblioteca CType

Aula 8 – Array: Vetores e Matrizes

Aula 7 – Estruturas de repetição: While

Aula 6 – Estruturas de repetição: FOR

Aula 5 – Condicionais, Variáveis char e conceitos

Aula 4 – Manipulação de variáveis

Aula 3 – Declaração de variáveis

Aula 2 – Bibliotecas, Printf e Scanf

Aula 1 – Apresentação do Code Blocks

19 thoughts on “Programação em C/C++

  1. Olá gilberto, sou um iniciante na linguagem C++, estou acompanhando suas aulas, atualmente estou na aula 20.
    Sou estudante do curso de Análise e desenvolvimento de sistemas, e gostaria de parabenizá-lo por sua boa vontade em ensinar, e também por você ensinar tão bem.

    Obrigado, Emanuel W.

  2. Olá Gilberto, sou um grande admirador do seu trabalho e da sua atitude de estar ensinado tantas pessoas que adoram como eu tudo que rodeia o universo dos computadores.

    Muito obrigado por passar o seu conhecimento, Ramon.

  3. Muito bom, não sou estudante da área, mas estou aprendendo muito, em uma sema consegui fazer um programa que mede o IMC e alerta quando o peso esta muito acima ou muito abaixo do norma e parabeniza quando o peso esta na medial . Simples mas pra quem não sabia nada

  4. Gilberto valeu pelas aulas pois sou estudante de engenharia de software na utfpr e suas aulas tem me ajudado muito faço propaganda sua aqui tem varias pessoas visualizando seu canal Deus te abençoe
    junto vamos chegar lá

  5. PRECISO DE AJUDA URGENTE.
    estou começando a faculdade e jé me pediram um programa que fizesse o controle de estacionamento com um valor inicial e um valor a mais apos 1 hora. que cadastrasse os veiculos e desse o valor de cada na saida e imprimisse um comprovante.
    ENCONTREI ESSE PROGRAMA NA NET E DEI UMA APERFEIÇOADA.
    ELE ESTÁ COM OS SEGUINTES PROBLEMAS:
    COLOQUEI A VOID CONTROLAR ESTACIONAMENTO MAS NÃO CONSIGO VINCULAR O CONTROLE DE ESTACIONAMENTO COM OS VEICULOS JÁ CADASTRADOS.
    FALTA TERMINAR AS VOID
    void CONSULTAR_VAGAS()
    void LISTAR_OCUPADAS()
    void LISTAR_VEICULOS()

    POR FAVOR ME AJUDEM, carol,
    beijos

    #include
    #include
    #include
    #include
    #include

    void INICIALIZA();
    void INSERIR(int I);
    void CADASTRAR_VEICULO();
    void CADASTRAR_VAGA();
    void CONTROLAR_ESTACIONAMENTO();
    void CONSULTAR_VAGAS();
    void LISTAR_OCUPADAS();
    void LISTAR_VEICULOS();

    struct
    {
    char PLACA[8], MODELO[20], MARCA[20], COR[10];
    int STATUS;

    }CARRO[10];

    int NVEI=0; //contador de veículos cadastrados
    //int NVAG=0; //contador de vagas cadastradas

    //—————————————————————————–

    main()
    {
    int OP;
    FILE* P;

    INICIALIZA();

    //abre o arquivo pro fopen “w” não substituir o que já existe
    P=fopen(“CARRO.txt”, “r”);
    fread(&CARRO, sizeof(CARRO), 1, P);
    fclose(P);

    do{
    printf(“CONTROLE DE ESTACIONAMENTO\n\n”);
    printf(“1. Cadastrar veiculo\n2. Cadastrar vaga\n3. Controle do estacionamento\n”);
    printf(“4. Consultar vagas\n5. Listar vagas ocupadas\n6. Listar veiculos\n7. Sair\n\nOpcao: “);
    scanf(“%d”, &OP);

    switch(OP)
    {
    case 1:
    {
    system(“cls”);
    CADASTRAR_VEICULO();
    break;
    }
    case 2:
    {
    system(“cls”);
    CADASTRAR_VAGA();
    break;
    }
    case 3:
    {
    system(“cls”);
    CONTROLAR_ESTACIONAMENTO();
    break;
    }
    case 4:
    {
    system(“cls”);
    CONSULTAR_VAGAS();
    break;
    }
    case 5:
    {
    system(“cls”);
    LISTAR_OCUPADAS();
    break;
    }
    case 6:
    {
    system(“cls”);
    LISTAR_VEICULOS();
    break;
    }

    case 7: break;

    default:
    {
    system(“cls”);
    printf(“Opcao invalida!\nEnter para voltar ao menu”);
    getch();
    system(“cls”);
    }
    }
    }while(OP!=7);

    getchar();
    }

    //—————————————————————————–

    void INICIALIZA()
    {
    int I;

    for(I=0; I<10; I++)
    CARRO[I].STATUS=0;
    }

    //—————————————————————————–

    void INSERIR(int I)
    {
    char PL[8];
    int I2, TESTE, TAM_PLACA;
    FILE *P;

    puts("Digite a placa: ");
    fflush(stdin);
    gets(PL);

    strupr(PL);//deixa caracteres da placa em maiúsculo

    for(I2=0; I2<10; I2++)
    {
    if(strcmp(PL, CARRO[I2].PLACA)==0)
    {
    printf("\nVeiculo ja cadastrado, informe outra placa\n\n");
    puts("Digite a placa: ");
    fflush(stdin);
    gets(PL);

    }
    }

    strcpy(CARRO[I].PLACA, PL);

    TAM_PLACA=strlen(CARRO[I].PLACA);

    if(TAM_PLACA!=7)
    {
    if(TAM_PLACA7)
    {
    printf(“\nPlaca invalida\nMuitos digitos\n\n”);
    INSERIR(I);
    }
    }

    //testa se 3 primeiros digitos são letras
    for(I2=0; I2<3; I2++)
    {
    TESTE=isalpha(CARRO[I].PLACA[I2]);//retorna 1 se for letra
    if(TESTE==0)
    {
    printf("\nPlaca invalida\nTres primeiros digitos devem ser letras!\n\n");
    INSERIR(I);
    }
    }

    //testa se 4 últimos digitos não são letras
    for(I2=3; I2<7; I2++)
    {
    TESTE=isalpha(CARRO[I].PLACA[I2]);//retorna 1 se for letra
    if(TESTE==1)
    {
    printf("\nPlaca invalida\nQuatro ultimos digitos devem ser numeros!\n\n");
    INSERIR(I);
    }
    }

    puts("\nDigite o modelo: ");
    fflush(stdin);
    gets(CARRO[I].MODELO);
    //deixa string em minúsculo
    strlwr(CARRO[I].MODELO);
    //deixa primeiro caractere maiúsculo
    CARRO[I].MODELO[0]=toupper(CARRO[I].MODELO[0]);

    puts("\nDigite a marca: ");
    fflush(stdin);
    gets(CARRO[I].MARCA);
    strlwr(CARRO[I].MARCA);
    CARRO[I].MARCA[0]=toupper(CARRO[I].MARCA[0]);

    puts("\nDigite a cor: ");
    fflush(stdin);
    gets(CARRO[I].COR);
    strlwr(CARRO[I].COR);
    CARRO[I].COR[0]=toupper(CARRO[I].COR[0]);

    CARRO[I].STATUS=1;

    P=fopen("CARRO.txt", "w");
    fwrite(&CARRO, sizeof(CARRO), 1, P);
    fclose(P);
    }

    //—————————————————————————–

    void CADASTRAR_VEICULO()
    {
    int I, FLAG=1;

    for(I=0; I<10; I++)
    {
    if(CARRO[I].STATUS==0)
    {
    INSERIR(I);
    FLAG=0;
    system("cls");
    break;
    }
    }

    if(FLAG==1)
    {
    printf("Sem espaco para cadastrar\nEnter voltar ao menu…");
    getch();
    system("cls");
    }
    }

    //—————————————————————————–

    void CADASTRAR_VAGA()
    {
    int I, FLAG=1;

    for(I=0; I= horaent)
    {
    tempo = (horasai – horaent);
    if (minsai > minent)
    ++tempo; // fracao de minutos implica na cobranca de mais 1 hora
    valoraserpago = tempo * 10.00;
    printf(“\nTotal a ser pago por %i hora(s) de estacionamento R$ %.2f”,
    tempo,valoraserpago);
    }
    else printf(“\nErro nos valores de hora de entrada e saida.”);
    printf(“\n\nFim do programa”);
    getch();
    }

    //—————————————————————————–

    void CONSULTAR_VAGAS()
    {}

    //—————————————————————————–

    void LISTAR_OCUPADAS()
    {}

    void LISTAR_VEICULOS()
    {
    int I, X=1;

    FILE *P;
    P=fopen(“CARRO.txt”, “r”);
    fread(&CARRO, sizeof(CARRO), 1, P);

    for(I=0; I<10; I++)
    {
    if(CARRO[I].STATUS==1)
    {
    printf("Veiculo %d\nPlaca: %s\t Modelo: %s\t Marca: %s\t Cor: %s\n\n", I+1, CARRO[I].PLACA, CARRO[I].MODELO, CARRO[I].MARCA, CARRO[I].COR);
    X=0;
    }
    }

    if(X==0)
    {
    printf("\nEnter voltar ao menu…");
    getch();
    system("cls");
    }
    else
    {
    puts("Nenhum veiculo cadastrado\nEnter voltar ao menu…");
    getch();
    system("cls");
    }
    }

  6. ola professor gostaria de uma ajuda pois tenho que desenvolver um programa e não estou conseguindo vou passar os dados será que você pode me ajudar?

    Faça um programa em linguagem C que leia três informações:
    – Peso.
    – Altura.
    – Ano de nascimento.
    – Imprima na tela o número do seu RA.

    2a) Se os dois primeiros dígitos da direita para a esquerda no seu RA formarem um número maior ou igual a 00 e menor ou igual a 49:
    – Imprima na tela o número dos dois primeiros dígitos da direita do seu RA.
    – Imprima na tela o cálculo do IMC das informações digitadas, sabendo que o valor do IMC é encontrado dividindo-se o valor do peso pelo quadrado da altura.

    3a) Se o terceiro dígito da direita para a esquerda no seu RA for um número ímpar:
    – Imprima na tela o terceiro dígito da direita para a esquerda do seu RA.
    – Faça um laço de repetição usando a estrutura FOR contando quantos números ÍMPARES existem entre 1900 e o ano de nascimento digitado, imprimindo o resultado na tela.

    minha RA15080505

  7. Adorei esse site, e o canal no youtube =3 . Vlw pelas aulas, e muito bem explicadas, ainda to no inicio, mas pretendo ver todas as aulas =3

  8. Primeiramente Parabéns pela inciativa do canal…!

    Tenho uma sugestão a fazer, durante o curso sinto falta de praticar os novos conhecimento adquiridos, até mesmo para fixar melhor, venho buscando exercícios pela net porém na maioria dos casos não são para iniciantes. Fica a minha sugestão. E Muito Sucesso com o canal!!!

  9. Brother! por favor! poste um vídeo em C falando sobre geração de números aleatórios de 1milhão, e que eles não podem se repetidos. não encontrei nada no youtube sobre isso e com certeza vc vai ajudar muita gente. abraço. 🙂

  10. Ola Gilberto já estudo pelas suas aulas há algum tempo, estou tendo estruturas de dados na faculdade e você explica melhor que meu professor, depois da sua aula 34 – pilha dinâmica, você não voltou mais no assunto de como usar a pilha dinâmica? ainda ira ter esse video ? mesmo que não parabéns pelo trabalho.

  11. Olá gilberto, começei a entender como trabalhar Linguagem em C e C++, fruto do seu trabalho, por tal muitos parabens, pelo conjunto de ferrametas/ atividades que desenvolve e pela excelente transmissão de conhecimentos. Desde já os meus parabéns.Tenho acompanhado as suas aulas de C e C++, pois estou a tirar o curso de Engenharia Informatica, numa faculdade de Portugal.
    Vinha solicitar o seu apoio para tentar dar resposta a uma situação colocada pelo professor, pois tenho de criar um trabalho/projeto em c++ com a implementação de um ADT ( tipo abstrato de dados) com eventual persistência de dados, atraves da utilização de ficheiros, ponteiros, funções classes. O professor sugeriu o tema do trabalho de cadastrar/registar alunos de uma turma ( nome, numero do aluno, idade, email) e utilizando um ADT – fila,
    Não sei por onde começar e como criar tal projeto. Será que o gilberto me pode dar uma ajuda?
    Desde ja agradeço a sua disponibilidade e mais uma vez parabéns por este excelente trabalho,.

  12. Parabéns pelo trabalho, estou acompanhando todo o material. Encontrei um probleminha no arquivo para download ‘Aula 62 – Argc e Argv – Argumentos para um programa’. Obrigado!!!!!

Deixe uma resposta