Você está na página 1de 93

Curso bsico de Linguagem C

Desenvolvido por Ricardo Lders

Introduo

Curso bsico de Linguagem C


Introduo > Sobre o curso

Sobre o curso
O curso ser apresentado em totalizando 20 (vinte) horas/aula. 5 (cinco) encontros,

Apresentar uma introduo a linguagem C.

20% Teoria

80% Prtica

Curso bsico de Linguagem C


Introduo > Objetivos

Objetivos
Introduzir o aluno sintaxe de desenvolvimento da linguagem C; Apresentar a estrutura bsica de um programa em C; Apresentar regras programao; fundamentais de boa prtica de

Tornar o aluno apto a compreender e criar seus prprios cdigos em C;

Curso bsico de Linguagem C


Introduo > Material de Apoio

Material de Apoio
Curso de Linguagem C http://www.ead.eee.ufmg.br/cursos/C/ UFMG -

C How to program 5. Ed. Deitel & Deitel C Completo e Total 3. Ed. Herbert Schildt

Linguagem C

Curso bsico de Linguagem C


Linguagem C > Sobre a Linguagem

Sobre a Linguagem
Surgiu na dcada de 70, criado por Dennis Ritchie. Uma das suas vantagens possuir caractersticas tanto de alto nvel quanto de baixo nvel. Muitos programas, ainda hoje, so desenvolvidos em C.

O C uma linguagem ESTRUTURADA!

Curso bsico de Linguagem C


Linguagem C > Sobre a Linguagem > O C case sensitive!

O C case sensitive!
Isso quer dizer que a linguagem C, diferencia letras maisculas e minsculas, tanto para nome de funes, variveis e comandos da linguagem; ou seja, ao declararmos as seguintes variveis: int Soma, SOMA, SoMa, soma; Todas as variveis acima sero diferentes para o C. Isto tambm se aplica aos comandos de sintaxe do C, como, por exemplo, o for e if que se forem escritos em maisculas o compilador no poder interpret-las corretamente.

Curso bsico de Linguagem C


Linguagem C > Sobre a Linguagem > Estrutura do cdigo

Estrutura do Cdigo
Devido ao fato do C ser uma linguagem estruturada, ou seja, o compilador segue um fluxo linear de compilao, devemos respeitar uma estrutura de cdigo. Vejamos abaixo: 1. Declarao das bibliotecas (cabealhos, headers). 2. Declarao das variveis globais. 3. Declarao das funes extras.

4. Funo principal do programa.

Curso bsico de Linguagem C


Linguagem C > Sobre a Linguagem > Palavras Reservadas

Palavras Reservadas
Toda linguagem reservadas. de programao possu palavras

Palavras reservadas no podem ser utilizadas a no ser por seus propsitos originais.

Curso bsico de Linguagem C


Linguagem C > Sobre a Linguagem > Palavras Reservadas

Palavras Reservadas
auto break case char const continue default do double else enum extern float fot goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

Curso bsico de Linguagem C


Linguagem C > Exemplo de Cdigo

Exemplo de Cdigo
#include <stdio.h> #include <conio.h> int soma(int a, int b) { return a + b; } int main() { int a = 0, b = 0, result = 0; printf("Vamos somar 2 valores!\n"); printf("Digite o primeiro valor da soma: "); scanf("%d", &a); printf("Digite o segundo valor da soma: "); scanf("%d", &b); result = soma(a, b); printf("O resultado da soma eh: %d", result); getch(); // Aguarda uma tecla para finalizar o programa

Bibliotecas Funes

Funo principal do programa

return 0;
}

Curso bsico de Linguagem C


Linguagem C > Exemplo de Cdigo > Anlise do Exemplo

Anlise do Exemplo
Vamos analisar o cdigo anterior?
1. Encontre as etapas da estrutura no cdigo anterior.

1.

Simule a sada na tela gerada pelo programa para as 2 entradas abaixo:


a) a) Primeiro valor recebe 10 e o segundo valor recebe 3. Primeiro valor recebe 2.4 e o segundo valor recebe 1.

Curso bsico de Linguagem C


Linguagem C > Codeblocks

Codeblocks
O que o codeblocks?
Para que serve o codeblocks?

O Codeblocks NO UM COMPILADOR!
Alguns exemplos de IDEs: Visual Studio, Dev-Cpp, Eclipse, entre outras...

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Interface

Interface

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Criando um projeto

Criando um projeto

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Criando um projeto

Criando um projeto

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Compilando o projeto

Compilando o projeto

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Ol mundo

Ol mundo
#include <stdio.h> #include <stdlib.h>
int main() { printf("Hello world!\n"); return 0; }

Este ser o corpo principal do seu programa!

Observao O Codeblocks criar automaticamente o cdigo acima. Mas no se acostume, viu? Observe bem o cdigo, voc consegue entende-lo?

Curso bsico de Linguagem C


Linguagem C > Codeblocks > Prtica

Prtica
Vamos criar um primeiro projeto?
Agora substitua a mensagem Hello World pela seguinte mensagem: Meu nome eh <SEUNOME> e eu estou aprendendo C!

Curso bsico de Linguagem C


Linguagem C > Antes de programar

Antes de programar
Boas prticas.
Aprender a pensar.

Saber trabalhar em equipe.


Ser curioso. Ser persistente.

Curso bsico de Linguagem C


Linguagem C > Antes de programar > Boas prticas

Boas prticas
Quando falamos de boas prticas podemos fazer referncia as regras de etiqueta. Assim como na vida, um cdigo de programao em qualquer linguagem necessita de normas organizacionais.

Estas normas, nem sempre so regras, mas so dicas para manter seu cdigo legvel, que resultar em um cdigo fcil de entender e manter.

Curso bsico de Linguagem C


Linguagem C > Antes de programar > Boas prticas > Os princpios DRY, DIE e KISS

Os princpios DRY, DIE e KISS


DRY ou Dont Repeat Yourself (No se repita)
DIE ou Duplication Is Evil (Duplicao maligna/m)

KISS ou Keep It Simple, Stupid (Mantenha isto simples, estpido)


Informao Alguns conceitos ficaram mais claros enquanto avanarmos em nosso estudo. Ao utilizarmos funes perceberemos que no precisamos repetir muitas coisas e inclusive podemos criar bibliotecas padronizadas que pouparo nosso trabalho.

Curso bsico de Linguagem C


Linguagem C > Antes de programar > Boas prticas > Comentrios

Comentrios
Como j falamos de boas prticas, seria impossvel no falar de comentrios em C. Comentrios so blocos de texto que so ignorados pelos compiladores. No C teremos duas formas de comentrios, so elas:
// Comentrio de uma linha /* Bloco de comentrio */

Curso bsico de Linguagem C


Linguagem C > Antes de programar > Boas prticas > Identao

Identao
Observe o bloco de cdigo abaixo:
int main(){int check=1;if(check){printf("Hello world!\n");}else{printf(Goodbye world!\n");return 0;}

O cdigo acima no est identado. Note como est complicado de ler, apesar de ser um cdigo extremamente simples. Identar um cdigo nada mais que separar os cdigos em blocos atravs de tabulao.

Curso bsico de Linguagem C


Linguagem C > Tipos de Dados

Tipos de Dados
A linguagem C possu 5 (cinco) tipos bsicos de dados: char, int, float, void e double.
Para cada tipo de dado existem modificadores de tipo, estes so 4 (quatro): signed, unsigned, long e short. Lembre-se, para o float nenhum modificado pode ser aplicado; assim como para o double podemos aplicar apenas o long.

Curso bsico de Linguagem C


Linguagem C > Tipos de Dados

Tipos de Dados
Tipo
char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int Nmero de bits 8 8 8 16 16 16 16 16 16 32 Formato de leitura com scanf %c %c %c %i %u %i %hi %hu %hi %li Intervalo Inicio -128 0 -128 -32.768 0 -32.768 -32.768 0 -32.768 -2.147.483.648 Fim 127 255 127 32.767 65.535 32.767 32.767 65.535 32.767 2.147.483.647

signed long int


unsigned long int float double long double

32
32 32 64 80

%li
%lu %f %lf %Lf

-2.147.483.648
0 3,4E-38 1,7E-308 3,4E-4932

2.147.483.647
4.294.967.295 3,4E+38 1,7E+308 3,4E+4932

Curso bsico de Linguagem C


Linguagem C > Tipos de Dados

Tipos de Dados
Declarao de varivel:
tipo_da_variavel nome_da_variavel = valor_inicial_da_variavel;

Declarao de variveis de um mesmo tipo:


tipo_da_variavel nome_var1 = valor1, nome_var2 = valor2;

Boas prticas! Ao nomear uma varivel seja obejtivo, use nomes faceis de entender e se necessrio faa um comentro acima da varivel explicando sua utilidade. Em nomes compostos separe-os utilizando underline.

Curso bsico de Linguagem C


Linguagem C > Tipos de Dados > Prtica

Prtica
No seu programa Hello World, criado anteriormente, vamos fazer algumas modificaes:
Crie duas variveis do tipo int chamadas num1 e num2 armazenem consecutivamente os valores 10 e 3 Crie uma varivel do tipo float chamada result que armazene o valor 0.0

Imprima esses valores da seguinte forma:

printf(Os valores sao: %i, %i e %f, num1, num2, result);

Curso bsico de Linguagem C


Linguagem C > Constantes

Constantes
So valores fixos mantidos pelo computador.
As constantes podem ser classificadas em 4 (quatro):
Constantes bsicas
Constantes hexadecimais e octais Constantes de strings Constantes de barra invertida

Curso bsico de Linguagem C


Linguagem C > Constantes > Constantes bsicas

Constantes bsicas
Tipo de Dado char int long int short int Exemplos de Constantes b \n \0 2 320000 130 100000 -467 100 -30

unsigned int
float double

50000 35678
0.0 23.7 -12.3e-10 12546354334.0 -0.0000034236556

Curso bsico de Linguagem C


Linguagem C > Constantes > Constantes hexadecimais e octais

Constantes hexadecimais e octais


Tipo de Dado Constante Hexadecimal (8 bits) Constante Hexadecimal (16 bits) Constante Octal (12 bits) Constante Octal (24 bits) Exemplos de Constantes 0xEF 0x12A4 03212 034215432

Nunca escreva 013 pensando que o C compilar isto como sendo 13. Em C os valores 013 e 13 so diferentes!

Curso bsico de Linguagem C


Linguagem C > Constantes > Constantes de strings

Constantes de strings
Neste caso cabe apenas uma observao, um alerta, sabemos que Joo uma constante string. Isto implica, por exemplo, no fato de que t diferente de t, pois t um char enquanto t uma string com 2 (dois) chars onde o primeiro t e o segundo \0.
Uma string um conjunto de chars com um terminador \0 ao final.

Curso bsico de Linguagem C


Linguagem C > Constantes > Constantes de barra invertida

Constantes de barra invertida


Cdigo \b \f \n \t \ \ \0 \\ \v \a \N \xN Significado Retrocesso (back) Alimentao de formulrio (form feed) Nova linha (new line) Tabulao horizontal (tab) Aspas dupla Aspas simples Nulo (0 em decimal) Terminador Barra invertida Tabulao vertical Sinal sonoro (beep) Constante octal (N o valor da constante) Constante hexadecimal (N o valor da constante)

Curso bsico de Linguagem C


Linguagem C > Operadores

Operadores
Realizam funes aritmticas e lgicas.
Possuem, como na matemtica, regras de precedncia.

Podem ser classificados em 3 (trs) categorias.

Curso bsico de Linguagem C


Linguagem C > Operadores > Aritimticos e de Atribuio

Aritmticos e de Atribuio
Operador + * / % ++ -Ao Soma (inteiro e ponto flutuante) Subtrao ou troca de sinal (inteiro e ponto flutuante) Multiplicao (inteiro e ponto flutuante) Diviso (inteiro e ponto flutuante) Resto da diviso (inteiros) Incremento (inteiros e ponto flutuante) Decremento (inteiro e ponto flutuante)

Curso bsico de Linguagem C


Linguagem C > Operadores > Aritimticos e de Atribuio > Exemplo

Exemplo
int a = 17, b = 3; int x, y; float z = 17., z1, z2; x = a / b; y = a % b; z1 = z / b; z2 = a / b; a++; b--;

A execuo deste bloco de cdigo, resultaria em:


x=5 z1 = 5.666666 a = 18 y=2 z2 = 5.0 b=2

Curso bsico de Linguagem C


Linguagem C > Operadores > Aritimticos e de Atribuio > Prtica

Prtica
Vamos fazer algumas operaes com os nossos valores?
Some o valor de num1 e num2, armazenando o resultado em result e em seguida imprima o resultado; Divida o valor de num1 por num2, armazenando o resultado em result e em seguida imprima o resultado;

Multiplique o valor de num1 por num2, armazenando o resultado em result e em seguida imprima o resultado.

Curso bsico de Linguagem C


Linguagem C > Operadores > Expresses

Expresses
So combinaes de variveis, constantes e operadores.
Devemos levar em considerao a tabela de precedncia ao mont-las. Exemplos de expresses:
Anos = Dias / 365.25; i = i + 3; c = a * b + b / e; c = a * (b + d) / e;

Curso bsico de Linguagem C


Linguagem C > Operadores > Expresses

Expresses
Importante! Converses de tipos de expresso.

Quando executamos expresses em tipos de dados diferentes, o compilador verifica se as converses so possveis, se no forem possveis ele mostrar um erro. Se as converses forem possveis ele as far, segundo as seguintes regras:
1. Todos os chars e shorts ints so convertidos para ints. Todos os floats so convertidos para doubles. Para pares de operandos de tipos diferentes: se um deles long double o outro convertido para long double; se um deles double o outro convertido para double; se um long o outro convertido para long; se um unsigned o outro convertido para unsigned.

2.

Curso bsico de Linguagem C


Linguagem C > Operadores > Expresses

Expresses
Expresso Original x = x + k; x = x k; x = x * k; x = x / k; Expresso Equivalente x += k; x -= k; x *= k; x /= k;

Existem vrias outras abreviaes. Seja curioso e pesquise!

Curso bsico de Linguagem C


Linguagem C > Operadores > Racionais e Lgicos

Racionais e Lgicos
Operador > >= < <= == != && || ! Ao Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de AND ( E ) OR ( OU ) NOT ( NO )

O C tambm possu uma classe de operadores lgicos chamados de Operadores bit-a-bit, que permitem que voc trabalhe diretamente na representao binria de um valor.

Curso bsico de Linguagem C


Linguagem C > Operadores > Racionais e Lgicos > Tabela Verdade

Tabela Verdade
p verdadeiro verdadeiro falso q verdadeiro falso verdadeiro p && q verdadeiro falso falso p || q verdadeiro verdadeiro verdadeiro

falso

falso

falso

falso

Curso bsico de Linguagem C


Linguagem C > Operadores > Tabela de Precedncia

Tabela de Precedncia
Maior precedncia () [] -> ! ~ ++ -- . -(unrio) (cast) *(unrio) &(unrio) sizeof */% +<< >> <<= >>= == != & ^ | && || ? = += -= *= /= , Menor precedncia

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada de Sada de Dados

Introduo a Entrada e Sada de dados


Sempre que solicitarmos alguma informao ao usurio, teremos uma entrada de dados.
Sempre que exibirmos algo ao usurio, seja informao processada ou no, teremos uma sada. uma

Existem vrias formas de entrada e sada de dados no C, estudaremos as mais comuns.

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Entrada

Entrada
Sempre que falamos de entradas de dados, devemos considerar que essas entradas podem ocorrer de diversas formas, as mais comuns:
Dados via teclado Dados recebidos atravs de scanners (leitores de cdigo de barra)

Trabalharemos aqui apenas com dados recebidos atravs do teclado, para isso precisamos conhecer as funes bsicas de entrada que o C nos fornece.

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Entrada > getch

getch()
parte da biblioteca conio.h
Utilizado para receber um nico caractere

Esta uma funo exclusiva para Windows


Formato: varivel_de_recebimento = getch();

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Entrada > getch

getch()
Exemplo:
#include <stdio.h> #include <conio.h>

int main() {
char Ch; Ch = getch(); printf(Voce pressionou a tecla: %c, Ch); return 0; }

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Entrada > scanf

scanf()
parte da stdio.h
Utilizado para receber strings.

multiplataforma
Formato: scanf(string_de_controle, lista_de_argumentos);

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Entrada > scanf

scanf()
Exemplo:
#include <stdio.h> #include <conio.h>

int main() {
char Ch; scanf(%c, &Ch); printf(Voce pressionou a tecla: %c, Ch); return 0; }

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Sada

Sada
Quando falamos de sada de dados, devemos considerar que as sadas de dados podem ocorrer de vrias formas, as mais comuns so:
Atravs do monitor Atravs da impressora

Trabalharemos aqui apenas com a exibio de mensagens na tela.

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Sada > printf

printf()
parte da stdio.h
Utilizado pare imprimir na tela uma mensagem

Formato:
printf(string_de_controle, lista_de_argumentos);

Curso bsico de Linguagem C


Linguagem C > Introduo a Entrada e Sada de dados > Sada > printf

printf()
Exemplo:
#include <stdio.h> #include <conio.h>

int main() {
int nota = 10; printf(O aluno tirou nota %d!, nota); return 0; }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo

Estruturas de Controle de Fluxo


So responsveis por controlar o fluxo do programa.
Testam condies.

Algumas so conhecidas como loops.

Boas prticas! Lembre-se de identar seu cdigo, isto facilita a leitura do mesmo, principalmente em estruturas de repetio.

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > if-else

if-else
A estrutura if-else utilizada para tomada decises, quando uma condio vlida ou no.
Formato: if ( condicao ) { bloco_de_comando } else { bloco_de_comando }

de

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > if-else

if-else
Exemplo:
int a = 1, b = 2; if ( (a + b) == 3 ) { printf(O resultado eh 3); } else { printf(O resultado nao eh 3); }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > switch

switch
O switch tambm utilizado para tomada de decises, porm cria um cdigo mais limpo. Com ele voc pode testar uma varivel em relao a diversos valores prestabelecidos.
Formato:
switch ( varivel ) { case constante_1: bloco_de_comando break; default: bloco_de_comando break; }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > switch

switch
Exemplo:
scanf(%d, &num); switch ( num ) { case 1: printf(Voce digitou 1); break; case 2: printf(Voce digitou 2); break; default: printf(Voce digitou %d, num); break; }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > while

while
O while uma estrutura de repetio, utilizada para criar os chamados loops de um programa. O cdigo dentro do bloco repetir enquanto a condio no for verdadeira.
Formato: while ( condio ) { bloco_de_comando }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > while

while
Exemplo:
while ( 1 == 1 ) { printf(Meu querido loop infinito\n); }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > for

for
Assim como o while o for utilizado para criar estruturas de repetio.
Formato: for ( inicializacao; condio; incremento ) { bloco_de_comando }

Curso bsico de Linguagem C


Linguagem C > Estruturas de Controle de Fluxo > for

for
Exemplo:
int count; for (count = 1; count <= 10; count++ ) { printf(%d , count); }

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes

Strings e Matrizes
So provavelmente os elementos mais importantes de um programa.
Derivam de tipos bsicos de variveis.

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings

Strings
So vetores de chars.
Seu ltimo elemento o \0.

Formato:
char nome_da_string[tamanho]

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings

Strings
Exemplo:
char nome[100]; printf(Digite o nome do aluno: ); gets(nome);

Dicas! Na linguagem C, strings sempre esto dentro de aspas duplas e podem possuir mais de um caractere, enquanto chars esto sempre entre aspas simples e contm apenas um elemento. Lembre-se bem disto!

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings

Manipulando Strings
Quando trabalhos com strings, sentimos a necessidade de manipul-las. Para isto o C possu alguns comandos especficos, so estes: strcpy strcat strlen strcmp

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcpy

strcpy()
Utilizada para copiar um string-origem para um stringdestino.
Faz parte da biblioteca string.h Formato: strcpy(string_destino, string_origem);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcpy

strcpy()
Exemplo:
char str1[100], str2[100], str3[100]; printf(Digite uma string: ); gets(str1); strcpy(str2, str1); strcpy(str3, Voce digitou: ); printf(%s%s.\n, str3, str2);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcat

strcat()
Anexa a string-origem ao fim da string-destino, sem alterar a string-origem.
Faz parte da biblioteca string.h Formato: strcat(string_destino, string_origem);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcat

strcat()
Exemplo:
char str1[100], str2[100]; printf(Digite uma string: ); gets(str1); strcat(str2, Voce digitou: ); strcat(str2, str1); printf(%s.\n, str2);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strlen

strlen()
Retorna o comprimento da string.
O terminador no contado.

Formato:
strlen(string);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strlen

strlen()
Exemplo:
int size; char nome[100]; printf(Digite o seu nome: ); gets(nome); size = strlen(nome); printf(%i.\n, size);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcmp

strcmp()
Utilizado para comparar uma string.
Retorna 0 se as strings forem iguais.

Formato:
strcmp(string1, string2);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Strings > Manipulando Strings > strcmp

strcmp()
Exemplo:
char str1[100], str2[100]; printf(Digite a primeira string: ); gets(str1); printf(Digite a segunda string: ); gets(str2);

if( strcmp(str1, str2) ) { printf(\nAs strings sao diferentes.); } else { printf(\nAs strings sao iguais!); }

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes

Matrizes
Tambm conhecidos como vetores.
Podem possuir vrias dimenses.

So estruturas de dados muito utilizadas.


O primeiro index de uma matriz sempre 0. Formato: tipo_de_dado nome_da_string[tamanho]

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes

Matrizes
Exemplo:
int num[10]; int i = 0; printf(Digite 10 numeros: ); for(i = 0; i <= 10; i++ ) { scanf(%i, &num[i]); } for(i = 0; i <= 10; i++) { printf(%i \n, num[i]); }

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes > Matrizes multidimencionais

Matrizes multidimencionais
So matrizes que possuem mais de uma dimenso.
Formato:
tipo_de_dado nome_da_var[tamanho_1][tamanho_2]...[tamanho_N];

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes > Matrizes multidimencionais

Matrizes multidimensionais
Exemplo:
int mtrx[20][10]; int count = 1, i = 0, j = 0;

for( i = 0; i < 20; i++ ) { for( j = 0; j < 10; j++ ) {


mtrx[i][j] = count; printf(mtrx[%i][%i] = %i \n, i, j, count); count++; } } printf(O valor de mtrx[3][5] = %i, mtrx[3][5]);

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes > Matrizes de Strings

Matrizes de Strings
So matrizes bidimensionais.
Podem ser chamadas de lista de strings indexadas.

Formato:
char nome_da_variavel[num_de_strings][comprimento_da_string];

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes > Matrizes de Strings

Matrizes de Strings
Exemplo:
char frutas[3][10] = { Pera, Uva, Laranja }; printf(Voce gosta de comer %s.\n, frutas[2]);

Qual a mensagem de sada do exemplo acima?


Voce gosta de comer Laranja.

Curso bsico de Linguagem C


Linguagem C > Strings e Matrizes > Matrizes > Matrizes dinmicas

Matrizes dinmicas
So matrizes que no possuem um tamanho especfico.
Exemplo:
int mess[] = { Linguagem C: Flexibilidade e Poder! }; int mtrx[][2] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

Dicas! Tome cuidado com as matrizes dinmicas, so extremamente teis, porm seu consumo de memria grande e pode causar alguns erros graves caso no utilizadas corretamente.

Curso bsico de Linguagem C


Linguagem C > Funes

Funes
So comandos da linguagem C, nativos ou no.
Podem ser criados pelo usurio.

Executam uma tarefa especifica.


So utilizadas para separar o cdigo e evitar repeties.
Boas prticas! Fala-se no mundo da programao que se uma funo no retornar algo ao seu final, ela no tem motivo de existir. Isto uma FALSA VERDADE, ou seja, algo no aplicvel.

Curso bsico de Linguagem C


Linguagem C > Funes > Estrutura de uma funo

Estrutura de uma funo


Uma funo pode ou no retornar um valor no seu final.
Uma funo pode receber ou no parmetros.

Formato:
tipo_de_retorno nome_da_funcao(parametros) { corpo_da_funcao }

Curso bsico de Linguagem C


Linguagem C > Funes > Estrutura de uma funo > Tipo e Retorno

Tipo e Retorno
Especifica o tipo de dados que a funo retornar.
Para retornar um valor utilizando return ao final da funo seguido da valor a ser retornado. Os tipos mais utilizados so: void int char

Curso bsico de Linguagem C


Linguagem C > Funes > Estrutura de uma funo > Parmetros

Parmetros
So os valores recebidos pela funco.
Uma funo pode no receber nenhum parmetro.

Uma funo pode receber vrios parmetros.

Boas prticas! Apesar de uma funo ser capaz de receber inmeros parmetros, a etiqueta diz que para uma funo ser facilmente compreendida dever ter ao mximo 3 (trs) parmetros.

Curso bsico de Linguagem C


Linguagem C > Funes > Exemplo

Exemplo
int soma(int a, int b) { return a + b; }

Esta funo realizar a soma de dois parmetros do tipo inteiro, e retornar o resultado no mesmo formato.

Ideia:
int resultado = soma(10, 3);

O valor de resultado ser 13.

Curso bsico de Linguagem C


Linguagem C > Funes > Prtica

Prtica
No exemplo anterior acompanhamos e entendemos como implementar uma funo de soma ao nosso programa, agora vamos criar as seguintes funes:
Subtrao Multiplicao Diviso

E vamos aplic-las em nosso programa, solicitando ao usurio a entrada de dois valores e a operao a ser realizada.

Curso bsico de Linguagem C


Linguagem C > Funes > Visibilidade de variveis

Visibilidade de variveis
Quando usamos funes, sentimos a necessidade de que, em alguns casos, as variveis sejam visualizadas por todas as funes, tal como tambm teremos algumas variveis que sero particularmente propriedades de uma funo.
Chamamos esta diferena entre as variveis de nveis de visualizao, estes podem ser em C, desta forma classificamos as variveis em 2 (dois) tipos: Variveis Locais Variveis Globais

Curso bsico de Linguagem C


Linguagem C > Visibilidades de variveis > Variveis locais

Variveis locais
declarada dentro de uma funo.
Tem seu valor apenas na funo onde foi declarada.

Nenhuma outra funo pode altera-la.


Exemplo:
int main() { char nome[100]; return 0;

Curso bsico de Linguagem C


Linguagem C > Visibilidades de variveis > Variveis globais

Variveis globais
declarada no corpo do programa. Fora de funes.
Pode ser alterada por qualquer funo do programa.

Exemplo:
int valor;

int main() { valor = 100; printf(O valor eh: %d, valor); return 0; }

Curso bsico de Linguagem C


Linguagem C > Bibliotecas

Bibliotecas
So inseridas atravs do comando #include <>;
So assim chamadas por conterem funes teis ao programador. Voc pode criar suas prprias bibliotecas para simplificar seu trabalho.

Tambm so chamadas de headers, libs, cabealhos ou arquivos-cabealho.


Sempre terminam com a extenso .h

Curso bsico de Linguagem C


Linguagem C > Bibliotecas > Prtica

Prtica
Vamos criar nossa primeira biblioteca, ela dever ser capaz de realizar as seguintes funes:
Retornar o valor da soma de dois parmetros Retornar o valor da subtrao de dois parmetros Retornar o valor da multiplicao de dois parmetros Retornar o valor da diviso de dois parmetros

Curso bsico de Linguagem C


Concluso

Concluso
Muito bem, agora j sabemos conhecemos um pouco sobre a linguagem C, que tal colocarmos tudo que aprendemos em prtica?
Afinal, apenas a prtica nos levar a perfeio; E se surgir alguma dvida, lembre que o Google seu amigo. Obrigado a todos pela pacincia! Ricardo Lders e-mail: xangelbr@gmail.com Site: http://www.luders.com.br/