Você está na página 1de 46

Lógica de Programação

Flavio C. Amate
C é uma linguagem de programação compilada de propósito
geral, estruturada, imperativa, procedural, padronizada pela
ISO, criada em 1972, porDennis Ritchie, no AT&T Bell Labs,
para desenvolver o sistema operacional Unix.

C é uma das linguagens de programação mais populares e


existem poucas arquiteturas para as quais não existem
compiladores para C.

C tem influenciado muitas outras linguagens de programação,


mais notavelmente C++, que originalmente começou como
uma extensão para C.
C é uma linguagem de médio nível

e feita para programadores!


Baixo Nível

Esse código é em Assembly e


resolve o seguinte problema:

Ler dois números, somar os


dois números, calcular e
imprimir a média.
Baixo Nível
Alto Nível

Basic
C ANSI
10 INPUT A,B
20 M = A + B #include <stdio.h>
30 PRINT M
void main() {
int a,b;
printf(“Entre com a”);
Python scanf(“%d”, &a);
printf(“Entre com b”);
A = input (“digite a”) scanf(“%d”, &b);
B = input (“digite b”) printf(“A media é %f” , (a+b)/2 );
print “A media é ”, (A+B) /2.0 }
Alto Nível ou Médio Nível ?

C ANSI
Herbert Schildt
#include <stdio.h>

void main() {
int a,b;
printf(“Entre com a”);
scanf(“%d”, &a);
printf(“Entre com b”);
scanf(“%d”, &b);
printf(“A media é %f” , (a+b)/2 );
}
Passos para a criação de um programa executável na linguagem C:

– Digitar seu programa com o auxílio de um processador de textos no


modo texto e gravá-lo em disco, dando a ele um sufixo .c – esse é o
código fonte.

– Compilar o código fonte seguindo as instruções do seu compilador,


o que criará um programa com sufixo .OBJ em disco – chamado de
objeto.

– Linkeditar o objeto seguindo as instruções do seu linkeditor, o que


resultará em um programa com sufixo .exe em disco (no Windows)
ou com o atributo executável (no Linux) – programa executável.
Estrutura básica de um programa em C

tipo nomeFunc(declaração de parâmetros)


{
declaração de variáveis;
instrução_2;

instrução_n;
retorno valor;
}
Menor programa C
int main ( )
{

return 0;

}
Tipos de dados
Funções

printf(“bla bla bla”);


stdio.h
printf(“bla bla bla = %i”, var);

float a = sin(90);
math.h
float b = cos( 0.0 );
A primeira Função

int a=2 , b=7 ;

printf ( “ A soma de %d e %d é igual a %d ” , a , b , a + b );


A primeira Função

int a=2 , b=7 ;

printf ( “ A soma de %d e %d é igual a %d ” , a , b , a + b );

Dados
String de Controle
A primeira Função

int a=2 , b=7 ;

printf ( “ A soma de %d e %d é igual a %d ” , a , b , a + b );

Dados
String de Controle
Alguns caracteres especiais para o printf

\n – nova linha
\t - tabulação
\f – salto de página
\a – sinal sonoro
\r – retorna o cursor no início da linha
\\ - barra invertida
\0 – caracter nulo
\’ – aspas simples
\” – aspas duplas
Códigos de formatação do printf

%c – imprime no formato caracter;


%d – imprime no formato decimal;
%i – imprime no formato inteiro;
%e – imprime no formato científico com e minúsculo
%E - imprime no formato científico com E maiúsculo
%f – imprime no formato ponto flutuante
%s – imprime como uma string de caracteres
%u – imprime como decimal sem sinal
%x - imprime um número na base hexadecimal. As letras
serão minúsculas.
%X - imprime um número na base hexadecimal. As letras
serão maiúsculas.
Para escrever casas decimais:

%.xf – onde x é o número de casas decimais

Para escrever espaços em branco:

%xf – onde x é o número de espaços em branco


antes do valor.
Comentários de programa

// bla bla bla

/* bla bla bla */


Inicializando variáveis
int i = 0;

char c = ‘A’;

float f = 3.4;

Etc…
Inicializando variáveis

Strings

Para declarar uma string podemos usar o seguinte formato geral :

char nome_da_string[ tamanho ];


#include <stdio.h>
int main ()
{
char string[100];
printf ("Digite uma string: ");
gets (string);
printf ("\n\nVoce digitou %s",string);
return(0);
}
Operadores
Binário

+ soma
- subtração
* multiplicação
/ divisão
% módulo (resto da divisão)

Unário

- subtração unário
& endereço da variável
++ incremento (pós e pré fixado)
-- decremento (pós e pré fixado)
Exemplos:

int a=2, b=6, c=3, d=0;


int x, y, z;

a = b+c;
b = c-1;
d = -a;
c = a*d;
a = b / 3;
x = &a;
y = ++a;
z = b++;

printf(“%d %d %d %d %d %d %d”, a,b,c,d,x,y,z);


Operadores de atribuição

x op= exp x = x op (exp)

Exemplo:

x += 10; x = x + 10;
Função scanf

Sintaxe:

scanf( “expressão de controle”, argumentos );


Formatação do scanf

%c – caracter simples
%d – inteiro decimal com sinal
%i - inteiro decimal, hexadecimal ou octal
%e – notação científica
%f – ponto flutuante
%s – string de caracteres
%x - hexadecimal
Outra forma de usar o scanf:

scanf (“%d:%d”, &hora, &min);

O caracter “:” indica que ambos valores devem ser informados entre “:”
(poderia ser qualquer outro caracter).
Diretivas

#include <stdio.h>
#include “meuArq.h”
Operadores relacionais

> Maior
>= maior ou igual
< menor
<= menor ou igual
== igual
!= diferente
Em C não existe uma variável do tipo “booleana”,
isto é, que assume valores “verdadeiro” ou
“falso”.

O valor 0 (zero) é considerado falso e qualquer


valor diferente é considerado verdadeiro.

Quando é necessário testar uma expressão, o


valor é respondido com 0 para falso e 1 para
verdadeiro.
Exemplo

Qual a saída ?
Operadores lógicos

&&  lógico E

||  lógico OU

!  negação
Sendo exp1 e exp2

• resulta 1 se se ambas são


exp1 && exp2  verdadeira e 0 se pelo menos uma
das duas for falsa.

• resulta 1 se uma das duas for


exp1 || exp2 
verdadeira e 0 se as duas forem
falsas.

• se exp1 for igual a 1 retorna 0 e


vice-versa.
! exp1 
Operador condicional ternário ?:

condição ? expressão1 : exepressão2;

Equivalente a:
if (condição) { expressão1 }
else { expressão2 }

O operador ? é restrito, mas pode simplificar


expressões grandes
Obs. Uma expressão é diferente de uma declaração
Exemplo

isso é um ternário
O que ele retorna ?
Qual o valor que b recebe?

int a = 9, b = -4;

b = a>b ? a : b;
Para Referência
Operadores: avaliação lógica ou numérica
Exercícios de fixação:

1 – Escreva um programa que receba três valores e retorne o volume


de um paralelepípedo com essas medidas de largura, altura e
profundidade.

2 – Escreva um programa que leia o preço de uma refeição e retorne o


valor dos 12.5% do garçom.

3 – Escreva um programa que receba 2 notas de prova e 2 trabalhos e


calcule a média entre eles considerando peso 7 para prova e peso
3 para trabalho.

Você também pode gostar