Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?
Mostrando postagens com marcador Tutorial de C. Mostrar todas as postagens
Mostrando postagens com marcador Tutorial de C. Mostrar todas as postagens

Filas em C - Como Programar (Tutorial de C sobre Queue - Estrutura de Dados)

Neste Tutorial de C de nossa apostila online, vamos falar sobre uma importante estrutura de dados dinâmica, que é a fila.

Junto com as listas encadeadas e as pilhas em C, formam o conjunto de estrutura de dados mais importantes e usados.

Pilhas (Stack) em C - O Que É e Como Implementar (Tutorial de C Estrutura de Dados)

Neste Tutorial de C, vamos falar sobre uma das estrutura de dados mais importantes da computação, que são as pilhas (stack, em inglês).

Vamos entender o que são pilhas, para que servem, como implementar e programar uma, do zero.

O que é e para que serve a Alocação Dinâmica de memória em C

No decorrer de nossa apostila de C, frisamos várias vezes que a linguagem C costuma agir em baixo nível, ou seja, bem próximo ao hardware, na arquitetura de seu sistema.

É por isso que temos que declarar, manualmente, as variáveis, lidar com endereços de memória (ponteiros), buffer, ter cuidado para não extrapolar os limites de vetor e outros detalhes e preocupações que a maioria das linguagens não exigem do programador.

Nessa introdução, vamos explicar outra coisa que o programador C deve ter consciência: alocar somente o necessário de memória.

Exercícios sobre structs em Linguagem C

Passando structs por referência para funções - O operador ->

Antes de mais nada, vamos deixar bem claro que, à rigor, não existe passagem por referência em linguagem C.
Mas por que vemos tanto falarem sobre isso, se não existe?

Na verdade, o que existe é uma espécie de 'truque', que é passar o endereço de memória, através de ponteiros, para funções, simulando uma passagem por referência.

Então não há problema em falar de passagem por referência em C, apenas use seu bom senso.

Como enviar uma struct para uma função

Conforme você estudou pelos tutoriais sobre funções em C, sabe que para passar uma variável ou vetor para uma função, devemos declarar a função com o tipo de dado esperado.
Algumas semelhanças continuam, conforme veremos nesse artigo.

Código comentado sobre como criar o Jogo da Velha em C


No artigo passado de nosso curso de programação, mostramos o código-fonte do Jogo da Velha em C, além de explicar a razão pela qual você deve tentar fazer, de qualquer jeito, uma versão totalmente sua do jogo.

Agora vamos explicar, passo a passo, a lógica da programação do jogo bem como cada detalhe do código.

Como programar o Jogo da Velha em C

Jogo da Velha em CAgora que já ensinamos os conceitos básicos da linguagem C, os testes condicionais e loopings, Funções e Vetores (matrizes), vamos colocar em prática nossos conhecimentos para criar algo interessante:
O Famoso Jogo da Velha

Nesse tutorial vamos ensinar as regras como se jogar em nosso aplicativo, bem como a lógica do jogo.
É importante você tentar fazer o seu, pois só assim você irá aprender.

Não tenha medo, a primeira vez que tentamos, o código fica gigantesco e confuso.
Mas o começo é assim mesmo.

No próximo artigo, vamos comentar cada parte do código aqui mostrado, ensinando passo-a-passo como se cria o jogo.

typedef: Como 'declarar' seus próprios tipos

Nos artigos passados, além de aprendermos como declarar uma struct na linguagem C, aprendemos a acessar e alterar os dados de uma estrutura.

Através de exemplos, vimos que podemos declarar várias variáveis de uma struct previamente declarada:
struct Aluno joaozinho;
struct Funcionario secretaria;

É como se tivéssemos criados tipos novos.
Assim como o 'int', 'float' ou 'char', é como se existisse o tipo 'struct Aluno' e 'struct Funcionario'.

Vamos entrar mais a fundo nesses detalhes e aprender como declarar structs através do atalho typedef.

Como acessar, alterar e ler os elementos de uma struct em C


Como já mostramos como declarar uma struct e declarar variáveis do tipo struct que criamos, vamos aprender como acessar.

Como declarar uma struct em C

Agora que explicamos no tutorial passado sobre o que são as structs, para que servem e onde usá-las, vamos explicar como usar ditas cujas estruturas.

Nesse tutorial de C vamos ensinar você a declarar, preencher os elementos da struct, acessar e trabalhar com os elementos de qualquer struct.

Structs em C: O que são, para que servem e onde são usadas

Agora que você estudou vetores e ponteiros, e aplicou esses conhecimentos nas strings em C, você viu a utilidade dos vetores, que é manusear várias variáveis de uma vez só.
Imagina a trabalheira de, ao invés de usar strings, usar variáveis do tipo char isoladamente?
Não dá nem pra pensar, não é?

Mas vetores têm uma limitação: eles possuem um tipo definido.
Ou o vetor é de char, ou de inteiros, ou de floats etc. Ou seja, vetores não podem ser usados com tipos diferentes.

Vamos ensinar agora as structs, que servem para manusear uma quantidade maior de informações de uma maneira mais simples, eficiente e de tipos diferentes.

Livro: Linguagem C - 10ª Edição 2007, Luís Damas

Qual o melhor livro de C, Que livro estudar C para iniciantes, Como começar a programar em CConfira agora um review detalhado sobre esse livro totalmente dedicado a linguagem C, feito pelo Luís Damas.


"Esta obra cobre, de forma didática, a totalidade da Linguagem C, desde os aspectos mais básicos até os aspectos mais avançados. Os assuntos são apresentados passo a passo com exemplos explicativos e com variações, de modo a tornarem-se acessíveis mesmo aos leitores sem qualquer experiência de programação."

Clique aqui para ter seu livro

Ele contém:
Mais de 7300 linhas de códigos explicados e comentados
240 programas completos
300 exercícios resolvidos
115 exercícios de exames universitários e concursos

strlen - Como calcular o número de caracteres em uma string

  • strlen: int strlen( char *str );
A função strlen() retorna o número de caracteres contidos na string str, sem contar com o caractere delimitador \0.

memcpy - Copiando caracteres de uma string para outra

  • memcpy: char* memcpy( char *dest, char *src, int n );

Copia os 'count' primeiros caracteres da string 'src' e coloca nas primeiras 'count' da string 'dest'.

A biblioteca string.h e suas funções

Trabalhar com strings, em C, não é nada óbvio, precisamos treinar bastante até ter total controle dos caracteres de nosso texto.

Essa dificuldade se torna ainda maior se você já tiver estudado outra linguagem de programação, como Java, Perl ou Python, onde a manipulação de texto é extremamente óbvia e simples.
Mas essa simplicidade toda não vem de graça, requer custos: processamento e memória de um computador.

Vamos agora, em nossa apostila de C, apresentar as principais funções para manipulação de strings, como usá-las e melhor: como criá-las! Sim, vamos criar funções de manipulação de strings para você saber como tudo funciona em C e como exercícios.

Como criar uma biblioteca em C

Vamos dar uma pausa em nossa apostila de C, especificamente sobre na seção de strings, para ensinar uma importante lição de organização.

Vamos aprender a criar e usar uma biblioteca, um header, que são aqueles arquivos de extensão .h que usualmente colocamos após o #include.

Introdução as strings: o que são, como declarar e inicializar – O Operador \0

 Após nosso estudo sobre vetores e das noções sobre ponteiros, vamos usar esses conhecimentos obtidos em nosso curso online de C.

Tente achar um programa que não tenha nada escrito. Que não seja necessário ler ou informar alguma letra ou palavra.
Até nas calculadoras temos que inserir caracteres (+, -, *, % etc).

Essa seção é totalmente dedicada a escrita, suas bibliotecas, funções, funcionamento e detalhes. Sim, vamos aprender a escrever em C, nesta seção de nossa apostila.

Operações Matemáticas com Ponteiros em C

Agora que ensinamos como fazer os ponteiros apontarem para variáveis, bem como ver e alterar o valor de variáveis através dos ponteiros, neste tutorial de nossa apostila de C, vamos dar mais exemplos reais de uso dos ponteiros, com operações de incremento, decremento, comparação de igualdade e negação.