Beruflich Dokumente
Kultur Dokumente
Algoritmos
Um algoritmo pode ser definido como uma seqncia de instrues para solucionar um problema. Essa seqncia de instrues deve ser
Finita No pode ser ambgua
Algoritmos
Por que NO ambguo?
Cada instruo do algoritmo deve ser precisamente definida, sem permitir mais de uma interpretao de seu significado. Os algoritmos devem se basear no uso de um conjunto de instrues bem definido, que constituem um vocabulrio de smbolos limitado.
Algoritmos
Exemplo: instrues de um professor para seus alunos em uma academia de ginstica
Repetir 10 vezes os quatro passos abaixo:
Levantar e abaixar brao direito; Levantar e abaixar brao esquerdo; Levantar e abaixar perna esquerda; Levantar e abaixar perna direita.
Algoritmos
Exerccio:
Escreva um algoritmo que representa a tarefa de se trocar um lmpada.
10/08/2011
Algoritmos
O algoritmo a lgica do nosso problema. a seqncia de passos que eu fao na minha cabea (ou, quando complexo, no papel) antes de escrever, em C. Podem existir vrios algoritmos diferentes para resolver o mesmo problema.
Pseudo-cdigo
Ex: imprimir maior valor
Leia A; Leia B; Se A > B ento Imprima A; Seno Imprima B; Fim Se
Fluxograma
Um fluxograma um diagrama, escrito em uma notao grfica simples, usado para representao visual de algoritmos.
Algoritmo -> texto Fluxograma -> grfico
Fluxograma
Representa uma seqncia de operaes qualquer, de forma detalhada, onde todos os passos so visualizados. utilizado tambm em outras reas
Processos dentro de uma empresa, linha de produo, etc.
Fluxograma
Vantagens
Padronizao na representao; Permite descrever com maior rapidez um conjunto de tarefas; Facilita a leitura e o entendimento de uma atividade;
Exemplo
Imprimir maior valor
Incio Leia A e B
No
A recebe B
10/08/2011
Primeiro programa em C
#include <stdio.h> #include <stdlib.h> int main() { printf("Hello World \n"); system(pause); return 0; }
Primeiro programa em C
int main(){ Incio printf("Hello World \n"); system(pause); return 0; } Fim
Comando de entrada
scanf() Comando que realiza a leitura dos dados de entrada
scanf(tipo de entrada, lista de variveis)
Comando de entrada
Ex:
Leitura de um nico valor int x; scanf("%d",&x); Leitura de mais de um valor int x,y; scanf("%d%d",&x,&y);
Comando de sada
printf() Comando que realiza a impresso dos dados do programa
printf(tipo de sada, lista de variveis)
10/08/2011
Comando de sada
Ex:
Sada de um nico valor inteiro printf("%d",x); Sada de mais de um nico valor printf("%d%d",x,y); printf("%d %d",x,y);
Variveis
Computao
Posio de memria que armazena uma informao Pode ser modificada pelo programa Deve ser definida antes de ser usada
Tipo_varivel lista_de_variveis Case sensitive
Variveis
Propriedades
Nome
Pode ter um ou mais caracteres Nem tudo pode ser usado como nome
Variveis
Nome
Deve iniciar com letras ou underscore(_); Caracteres devem ser letras, nmeros ou underscores; Palavras chaves no podem ser usadas como nomes; Letras maisculas e minsculas so consideradas diferentes
Tipo
Conjunto de valores aceitos
Escopo
global ou local
Variveis
Lista de palavras chaves auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typeof union unsigned void volatile while
Variveis
Corretos:
Contador, contador1,Teste_123, _teste, int1
Errados
comp!, .var, int, 1contador, -x, Teste-123, x&
10/08/2011
Variveis
Tipo
Define os valores que ela pode assumir e as operaes que podem ser realizadas com ela
Tipos bsicos em C
char: um byte que armazena o cdigo de um caractere do conjunto de caracteres local
caracteres sempre ficam entre aspas simples! char c = a;
Exemplo
tipo int recebe apenas valores inteiros tipo float armazena apenas valores reais
Tipos bsicos em C
float: um nmero real com preciso simples
parte decimal usa ponto e no vrgula! float f = 5.25;
Variveis
Tipo char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int float double long double bits 8 8 8 16 16 16 16 16 16 32 32 32 32 64 80 Intervalo -128 a 127 0 a 255 -128 a 127 -32.768 a 32.767 0 a 65.535 -32.768 a 32.767 -32.768 a 32.767 0 a 65.535 -32.768 a 32.767 -2.147.483.648 a 2.147.483.647 -2.147.483.648 a 2.147.483.647 0 a 4.294.967.295 3,4E-38 a 3.4E+38 1,7E-308 a 1,7E+308 3,4E-4932 a 3,4E+4932
Variveis
Escopo
Define onde e quando a varivel pode ser usada.
Variveis
Escopo local
Bloco
visvel apenas no interior de um bloco de comandos if (teste == TRUE) { int i; i = i+1;}
Escopo global
Fora de qualquer definio de funo Tempo de vida o tempo de execuo do programa
Funo
declarada na lista de parmetros da funo ou definida dentro da funo int minha_fun (int x, int y) { int i, j;}
Escopo local
Bloco ou funo
10/08/2011
Constantes
Como uma varivel, uma constante tambm armazena um valor na memria do computador. Entretanto, esse valor no pode ser alterado: constante. Para constantes obrigatria a atribuio do valor.
Constantes
Usando #define
Voc dever incluir a diretiva de pr-processador #define antes de incio do cdigo: #define PI 3.1415
Usando const
Usando const, a declarao no precisa estar no incio do cdigo. const double pi = 3.1415;
Constantes char
O C utiliza vrios cdigos chamados cdigos de barra invertida.
\a bip \b backspace \n newline \t tab horizontal \ apstrofe \ aspa \\ backslash \f form feed
Constantes char
Ex:
printf(Hello World); printf(Hello \n World);
Resultado
Hello World Hello World
Atribuio
Operador de Atribuio: =
nome_da_varivel = expresso, valor ou constante;
10/08/2011
Operadores
Os operadores so usados para desenvolver operaes matemticas. Podem ser
Unrios Binrios Bit a bit
Operadores
Operadores Unrios
+ : mais unrio ou positivo - : menos unrio ou negao ! : NOT ou negao lgica &: endereo *: contedo (ponteiros) ++: pr ou ps incremento -- : pr ou ps decremento /* + x; */ /* -x;*/ /* ! x; */ /* &x; */ /* (*x); */ /* ++x ou x++ */ /* -- x ou x -- */
Operadores
Diferena entre pr e ps incremento/decremento
y = x++: incrementa depois de atribuir y = ++x: incrementa antes de atribuir
Operadores
Ex:
int x,y; x = 10; y = x++; printf("%d \n",x); printf("%d \n",y); y = ++x; printf("%d \n",x); printf("%d \n",y);
Resultado
11 10 12 12
Operadores
Binrios
+: adio de dois nmeros - : subtrao de dois nmeros * : multiplicao de dois nmeros / : quociente de dois nmeros %: resto da diviso: /* x + y */ /* x - y */ /* x * y */ /* x / y */ /* x % y */
Operadores
Operaes bit-a-bit: o nmero representado por sua forma binria e as operaes so feitas em cada bit dele.
<<: desloca esquerda >>: desloca direita ^ : ou exclusivo & : E bit-a-bit | : OU bit-a-bit ~ : Complementa bit-a-bit /* x << 2 */ /* x >>2 */ /* x ^ 0xF0 */ /* x & 0x07 */ /* x | 0x80 */ /* ~ x */
10/08/2011
Operadores
As operaes bit-a-bit ajudam programadores que queiram trabalhar com o computador em "baixo nvel". Essas operaes s podem ser usadas nos tipos char, inte long.
Operadores
Exemplo de operador bit a bit
char x = 0xD5; 1 0x0F x & 0x0F
0 1 0 0 0 1 0 0 1 1 1 0 1 1 1
Operadores
Exemplo de operador bit a bit
char x = 0xD5; 1 x << 2
(x*4) 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0
Operadores Simplificados
O C permite simplificar algumas expresses matemticas
+= : soma e atribui -= : subtrai e atribui *= : multiplica e atribui /= : divide e atribui quociente %= : divide e atribui resto &= : E bit-a-bit e atribui |= : OU bit-a-bit e atribui <<= : shift left e atribui x += y; <=> x = x + y; x -= y; <=> x = x - y; x *= y; <=> x = x * y; x /= y; <=> x = x / y; x %= y; <=> x = x % y; x &= y; <=> x = x & y; x |= y; <=> x = x | y; x <<= y; <=> x = x<<y;
x >> 2
(x/4)
10/08/2011
Expresses
Expresses so combinaes de variveis, constantes e operadores. Exemplos:
Anos = Dias/365.25; i = i+3; c= a*b + d/e; c= a*(b+d)/e;
Modeladores (Casts)
Um modelador aplicado a uma expresso. Fora o resultado da expresso a ser de um tipo especificado.
(tipo) expresso
Ex:
(float) x; (int) x * 5.25;
Modeladores (Casts)
Ex:
int num; float f; num = 10; f = num/7; printf ("%f \n", f); f = (float)num/7; printf ("%f", f);
Resultado
1.000000 1.428571
10/08/2011
Menor precedncia
10