Você está na página 1de 40

ROBERTO TENORIO FIGUEIREDO

www.osfedera.com
tenorio.petrolina@bol.com.br
ROBERTO TENORIO FIGUEIREDO
www.osfedera.com
tenorio.petrolina@bol.com.br
C
C uma linguagem de programao padronizada
pela ISO, criada em 1972, por Dennis Ritchie, no
AT&T Bell Labs. uma linguagem:
Compilada
De propsito geral,
Estruturada,
Imperativa,
Procedural,
C

C: Procedural;

C++: Procedural e Orientada a Objetos;

C#: Orientada a Objetos;


Comeando a programar
Arquivo -> Novo -> Projeto -> Console
Application

Arquivo -> Abrir -> nome.dev


Comeando a programar
#include <iostream>

/* run this program using the console pauser or add


your own getch, system("pause") or input loop */

int main(int argc, char** argv) {


return 0;
}
Comeando a programar
#include <iostream>

int main(int argc, char** argv) {


return 0;
}
Comeando a programar
#include <iostream>
//Escreva as ROTINAS aqui
int main(int argc, char** argv) {
// Escreva o cdigo principal aqui
return 0;
}
Programao em C

Muitos comandos do C esto em bibliotecas, para


que seu cdigo s tenha o que realmente voc vai
precisar.

#include
Programao em C

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <math.h>
#include <cstdlib>
#include <ctype.h>
#include <fstream>
Programao em C
Alm das bibliotecas os comandos de entrada
e sada ainda precisam de um comando
especial, o using

using namespace std;


Programao em C
DECLARAO DE VARIVEIS

i1, i2 : inteiro int i1, i2;

s1, s2: literal string s1, s2;

r1, r2 : real float r1, r2;

x : vetor [1..100] de inteiro int x [100];

v : vetor [1..100] de literal string v[100];

Em C no necessrio usar o comando VAR


Programao em C
Os comandos de entrada e sada

LEIA e ESCREVA

Que no visual usado para todos tipos de


variveis,no C, cada tipo tem um comando
especfico.
Programao em C
Inteiro (Int)
Leia (x) scanf("%d", &x);

Real (Float)
Leia (x) scanf(%f", &x);

Literal (String)
Leia (x) cin >> x;
Programao em C
Inteiro (Int)
Escreva (x) printf("%d", x);
Escreval (x) printf("%d\n", x);

Real (Float)
Escreva (x) printf("%f", x);
Escreval (x) printf("%f\n", x);

Literal (String)
Escreva (x) cout << x;
Escreval (x) cout << x; printf("\n");
Programao em C
Operadores Aritmticos:
+ * / % (resto da diviso)

Obs.: Diviso de float, deve ter pelo menos


um nmero com .0

Expoente: pow (base,expoente);


Programao em C
Operadores Relacionais
> maior que
>= maior ou igual
< menor
<= menor ou igual
== igual Visualg: =
!= diferente Visualg: <>
Programao em C
Operadores Lgicos

&& Visualg: e
|| Visualg: ou
! Visualg: no
Atribuio
X = 1; Visualg: X <- 1
Comando SE
if (x > 5) { se (x > 5) entao

} else { senao

} fimse
Comando Escolha
Escolha (x) Switch (x){
caso 1 case 1:

caso 2 break;
case 2:
outrocaso
break;
fimescolha default:

break;
}
Comando PARA
para i de 1 ate 10 faca for (i=1; i<=10; i+=1){

fimpara }
Comando ENQUANTO
enquanto (i < 10) faca while (i < 10) {

fimenquanto }
Comando REPITA
repita do {

ate(i < 10) } while (i < 10);


Rotinas: Procedimentos
Procedimento nome (i1, i2: inteiro) void nome(int i1, int i2) {
var i : inteiro Int i;
inicio

fimprocedimento }
Rotinas: Funo
funcao nome (i1:inteiro) : inteiro int nome (int i) {
var i: inteiro int i;
Inicio

retorne i
return i;
fimfuncao }
Rotinas: Funo
funcao nome (var i1:inteiro) : inteiro int nome (int &i) {
var i: inteiro int i;
Inicio

retorne i
return i;
fimfuncao }
O comando System
system ("pause"); Aguarde qualquer tecla;
system ("color 2"); Altera a cor da letra
system ("Cls"); limpatela
system ("title NOME"); Altera o ttulo da janela;
system ("calc"); Abre a calculadora
system ("notepad"); Abre o bloco de notas;
system ("date/t"); mostra a data;
system ("time/t"); mostra a hora;
Exerccio de Fixao
Converter o algoritmo em Visualg do slide a
seguir para C++
algoritmo "aula"
var val1, val2: inteiro
procedimento troca (var i1, i2: inteiro)
var i : inteiro
inicio
i <- i1
i1 <- i2
i2 <- i
fimprocedimento
Inicio
Escreva ("Digite o primeiro valor ")
leia (val1)
Escreva ("Digite o segundo valor ")
leia (val2)
se val1 > val2 entao
escreval(val1)
senao
escreval(val2)
fimse
troca (val1, val2)
escreva (val1)
fimalgoritmo
ESTRUTURAS EM C
ESTRUTURAS
STRUCT SO COLEES DE DADOS
HETEROGNEOS AGRUPADOS EM UMA
MESMA ESTRUTURA DE DADOS
Ex:
armazenas as coordenadas (x,y) de um ponto:
(x, y)
ESTRUTURAS
Declarao:

struct { (x, y)
int x;
int y;
} p1, p2;

a estrutura contm dois inteiros, x e y


p1 e p2 so duas variveis tipo struct contendo
duas coordenadas cada.
DECLARAO

Formato da declarao:
struct nome_da_estrutura {
tipo_1 dado_1;
tipo_2 dado_2;
...
tipo_n dado_n;
} lista_de_variaveis;
A estrutura pode agrupar um nmero arbitrrio de dados
de tipos diferentes
Pode-se nomear a estrutura para referencia-la
NOMEANDO UMA ESTRUTURA

struct ponto define um novo tipo de dado


struct {
int x;
int y; struct
struct ponto
ponto {{
int
int x;
x;
} p1; int y;
int y;
Repetio };
};
struct { struct
struct ponto
ponto p1,
p1, p2;
p2;
int x;
int y;
} p2;
Pode-se definir novas variveis do tipo ponto
ESTRUTURAS

acesso aos dados:

struct-var.campo

Ex:
p1.x = 10; /*atribuio */
p2.y = 15;
if (p1.x >= p2.x) &&
(p1.y >= p2.y) ...
ATRIBUIO DE ESTRUTURAS
Inicializao de uma estrutura:
struct ponto p1 = { 220, 110 };

Atribuio entre estruturas do mesmo tipo:


struct ponto p1 = { 220, 110 };
struct ponto p2;

p2 = p1; /* p2.x = p1.x e p2.x = p1.y */

Os campos correspondentes das estruturas


so automaticamente copiados do destino
para a fonte
ATRIBUIO DE ESTRUTURAS

Ateno para estruturas que contenham ponteiros:


struct aluno {
char *nome; int idade;
} a1, a2;

a1.nome = Afranio;
a1.idade = 32;
a2 = a1;

Agora a1 e a2 apontam para o mesmo string nome:


a1.nome == a2.nome == Afranio
OPERAES

operaes entre membros das estruturas


devem ser feitas membro a membro:
/* retorna uma cpia de p1 = p1 + p2 */
struct soma_pts (struct ponto p1, struct ponto p2)
{
p1.x = p1.x + p2.x;
p1.y = p1.y + p2.y;

return p1; /* retorna uma copia de p1 */


}
VETOR DE ESTRUTURAS
struct ponto arp[10];
/* cria um array de 10 pontos */
arp[1].x = 5; /*atribui 5 a coordenada x do 2 ponto */

struct jogador {
char *nome;
int idade;
};
struct jogador Brasil[11] = {
Felix, 32,
Carlos Alberto, 24, ...
};
DVIDAS

Você também pode gostar