Escolar Documentos
Profissional Documentos
Cultura Documentos
domingo, 15 de setembro de 13
domingo, 15 de setembro de 13
Objetivos
Adquirir competncia para representar a resoluo de problemas por meio de algoritmos. Adquirir conhecimentos bsicos em Linguagem de Programao C, padro ANSI Ao final do curso o aluno deve ter adquirido confiana em sua habilidade de ler e escrever cdigo.
domingo, 15 de setembro de 13
Histria
Ada Augusta B. King (1815 - 1852) Primeira programadora de toda a histria Desenvolveu programas para uma mquina chamada Bobbage, que at ento ningum havia desenvolvido.
domingo, 15 de setembro de 13
Histria
Alan Turing (1912 - 1954) Foi responsvel por criar a Mquina que manipulava smbolos ligados a regras prprias Quebrou os cdigos secretos gerados pelos alemes na II G.M. Apesar de tudo, foi humilhado e preso por ser homossexual
domingo, 15 de setembro de 13
Conceito de Algoritmos
Um algoritmo a descrio de um padro de comportamento, expresso em termos de um repertrio bem definido e finito de aes "primitivas", das quais damos por certo que elas podem ser executadas. Introduziremos de forma intuitiva a noo de algoritmo, motivando ao mesmo tempo as estruturas bsicas de controle (seqncia simples, alternativa e repetio) como formas de raciocnio "naturais.
domingo, 15 de setembro de 13
Conceito de Algoritmos
View
domingo, 15 de setembro de 13
Conceito de Algoritmos
View
domingo, 15 de setembro de 13
Conceito de Algoritmos
Linguagem natural
Algoritmo
Linguagem de Programao
Linguagem de mquina
domingo, 15 de setembro de 13
Conceito de Algoritmos
Sequncia Simples
traga a cesta com batatas do poro; traga a panela do armrio; descasque as batatas; devolva a cesta ao poro;
domingo, 15 de setembro de 13
Conceito de Algoritmos
Alternativas
"traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; "descasque as batatas"; "devolva a cesta ao poro;
domingo, 15 de setembro de 13
Conceito de Algoritmos
Repeties
"traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; "descasque uma batata"; "descasque uma batata"; ... (50 vezes) "descaque uma batata"; "devolva a cesta ao poro. - Nmero finito de repeties
domingo, 15 de setembro de 13
Conceito de Algoritmos
Repeties
"traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; se "nmero de batatas insuficiente" ento "descasque uma batata"; se "nmero de batatas insuficiente" ento "descasque uma batata"; ...(50 vezes) se "nmero de batatas insuficiente" ento "descasque uma batata"; "devolva a cesta ao poro;
domingo, 15 de setembro de 13
Conceito de Algoritmos
Repeties
"traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; enquanto "nmero de batatas insuficiente" faa "descasque uma batata"; "devolva a cesta ao poro; - Nmero de repeties necessrias, no preciso saber quantas so previamente.
domingo, 15 de setembro de 13
Conceito de Algoritmos
Um algoritmo computacional uma seqncia de instrues que manipula dados. Instrues: comandos que determinam a forma pela qual os dados devem ser tratados. Dados: informaes recolhidas/fornecidas por diversos meios e que sero processadas pelo computador atravs das instrues.
domingo, 15 de setembro de 13
Conceito de Algoritmos
A linguagem C foi proposta por Brian Kernighan e Dennis Ritchie entre o final da dcada de 1960 e incio da dcada de 1970. The Spirit of C: Trust the programmer. Dont prevent the programmer from doing what needs to be done. Keep the language small and simple. Provide only one way to do an operation. Make it fast, even if it is not guaranteed to be portable.
domingo, 15 de setembro de 13
Conceito de Algoritmos
A linguagem C possui 32 palavras restritas
domingo, 15 de setembro de 13
Conceito de Algoritmos
Identificadores: nomes (rtulos) atribuidos s variveis, funes e estruturas de dados que so utilizados em algoritmos. Regras para formao de Identificadores:
O primeiro caractere deve ser, obrigatoriamente, uma letra; Do segundo caractere em diante so permitidos nmeros e
letras;
Palavras reservadas no podem ser usadas como Id.; H distino entre maisculo e minsculo, ou seja, Case
Sensitive.
domingo, 15 de setembro de 13
Conceito de Algoritmos
Exemplos vlidos:
Exemplos invlidos:
domingo, 15 de setembro de 13
Conceito de Algoritmos
Varivel: um espao reservado na memria do computador para armazenar um determinado tipo de memria. As variveis devem receber identificadores para poderem ser modificadas e referenciadas quando necessrio Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e s vezes um valor inicial. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.
domingo, 15 de setembro de 13
Conceito de Algoritmos
21 Idade
tiago
Nome
. . .
domingo, 15 de setembro de 13
Conceito de Algoritmos
Inteiros (int): nmeros inteiros, negativos, nulo ou positivos. Ex: -3, 3, 0, 123. Reais(float): nmeros reais, negativos, nulo ou positivos. Ex: 2.3, 3.44. Caractere(char): apenas um nico caractere alfanumrico. Ex: a, b, 3. Existem mais tipos, porm iremos estudar mais a frente
domingo, 15 de setembro de 13
Conceito de Algoritmos
#include <stdio.h> #include <stdlib.h> int main() { // Seo de Declaraes <declarao de variveis> // Seo de Comandos <comandos> system("PAUSE"); //Opcional, necessrio para Windows return 0; }
domingo, 15 de setembro de 13
Conceito de Algoritmos
#include <stdio.h> #include <stdlib.h> int main() { int idade, num_de_filho; float peso, altura; // Seo de Comandos <comandos> system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Conceito de Algoritmos
Operador de atribuio
domingo, 15 de setembro de 13
Conceito de Algoritmos
Operadores aritmticos
domingo, 15 de setembro de 13
Conceito de Algoritmos
Precendncia de operadores
Se forem de mesma precedncia, o compilador analisa da esquerda para direita Em caso de dvidas, os parnteses sempre ajudam
domingo, 15 de setembro de 13
Conceito de Algoritmos
Menos unrio
domingo, 15 de setembro de 13
Conceito de Algoritmos
Operadores aritmticos (*, /, -, +) Ex: 3*4, 3-4, 2+5; delta = num*3; Operador de mdulo da diviso (%) Ex: num = 17%5;
domingo, 15 de setembro de 13
Conceito de Algoritmos
Operadores aritmticos de atribuio
domingo, 15 de setembro de 13
Conceito de Algoritmos
Operadores de incremento ou decremento
domingo, 15 de setembro de 13
Conceito de Algoritmos
Algumas funes teis:
domingo, 15 de setembro de 13
domingo, 15 de setembro de 13
I/O Algoritmos
Preciso dos tipos
domingo, 15 de setembro de 13
I/O Algoritmos
Formatao para o printf()
domingo, 15 de setembro de 13
I/O Algoritmos
Formatao para o printf()
domingo, 15 de setembro de 13
Algoritmos
EXERCICIOS!
05 PTS
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Operadores lgicos:
No um tipo bsico do C! O 0 est p/ o FALSO, assim como qualquer valor est para o VERDADEIRO
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Operadores lgicos:
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Operadores relacionais:
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Precedncia entre operadores relacionaise e lgicos:
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Portugol)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Portugol) Exemplo 1: Escreva um algoritmo para calcular a rea de um crculo, fornecido o valor do raio, que deve ser positivo. Em seguida o algoritmo deve imprimir o valor da rea na tela do computador.
algoritmo Area1" var real: Area, Raio: inicio escreva ("Entre com o raio do crculo") leia (Raio) se Raio > 0 entao Area <- 3.14*pow(Raio,2) escreva ("A rea ", Area) fimse se Raio <= 0 entao escreva ("Raio no pode ser nulo ou negativo!") fimse fimalgoritmo
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativa simples em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
Exemplo 2: Escreva um algoritmo que l o valor da mercadoria, calcula e mostra o valor nal a ser pago incluindo, se for o caso, a taxa de embrulho para presente que de R$ 4,50.
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
#include <stdio.h> #include <stdlib.h> int main() { float valor; char presente; printf("Informe o valor da mercadoria:"); scanf("%f", &valor); getchar(); printf("Dever ser embrulhada para presente?"); scanf("%c", &presente); if (presente == 'S') { valor = valor + 4.50; } printf("Total a pagar: %f",valor); system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa simples: Se..Ento...Fimse (Em C)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa composta: Se..ento...seno...fimse (Portugol)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Alternativa composta: Se..ento...seno...fimse (Portugol)
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Voltando ao Algoritmo de clculo da rea do crculo (Portugol)
algoritmo Area2" var real: Area, Raio; inicio escreva ("Entre com o raio do crculo") leia (Raio) se Raio > 0 entao Area <- 3.14*pow(Raio,2) escreva ("A rea ", Area) senao escreva ("Raio no pode ser nulo ou negativo!") fimse fimalgoritmo
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativa composta em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Voltando ao Algoritmo de clculo da rea do crculo (Em C)
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float Area, Raio; printf("Informe o valor do raio:"); scanf("%f", &Raio); if (Raio > 0) { Area = 3.14*pow(Raio,2); printf("A area eh: %.2f \n",Area); } else { printf("Raio no pode ser nulo ou negativo! \n"); } system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas aninhadas em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas aninhadas em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas aninhadas em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas aninhadas em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas de mltipla escolha em Portugol
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas de mltipla escolha em Fluxograma
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas de mltipla escolha em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas de mltipla escolha em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
Formato de alternativas de mltipla escolha em C
domingo, 15 de setembro de 13
Algoritmos c/ Alternativas
EXERCICIOS!
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no incio: Enquanto...Faa (Portugol) enquanto <expressao> faca <lista de comandos> fimenquanto
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no incio: Enquanto...Faa (C)
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no incio: Enquanto...Faa (C)
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Formato de Repeties c/ teste no incio
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no incio: Enquanto...Faa (C)
Exemplo 3: Escreva um programa que solicita ao usurio N notas, calcula e imprime na tela do computador a mdia da turma. O programa deve continuar solicitando notas at que o valor -1 seja digitado pelo usurio.
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no incio: Enquanto...Faa (C)
#include <stdio.h> #include <stdlib.h> int main() { float numero, soma = 0, media = 0; int N = 0; printf("Escreva uma nota:"); scanf("%f", &numero); while(numero != -1) { N++; soma = soma + numero; printf("Escreva uma outra nota:"); scanf("%f", &numero); } media = soma/N; printf("A media eh: %f \n", media); system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no final:Faa...Enquanto (Portugol) faca <lista de comandos> enquanto <expressao>
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Formato de repeties c/ teste no final:Faa...Enquanto (C)
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no final:Faa...Enquanto (C)
#include <stdio.h> #include <stdlib.h> int main( ) { int Npares = 0, Nimpares = 0, Numero; do{ printf("Digite um numero: "); scanf("%d", &Numero); if (Numero > 0) { if (Numero%2 == 0) Npares++;; else } } while(Numero != -1); printf("Numero de pares: %d \n", Npares); printf("Numero de mpares: %d \n", Nimpares); system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no inicio: para...fimpara (Portugol)
para <variavel de controle> de <valor inicial> ate <valor final> [passo <incremento>] faca <lista de comandos> fimpara
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no inicio: For (C)
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no inicio: For (C)
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
Repeties c/ teste no inicio: For (C)
#include <stdio.h> #include <stdlib.h> int main() { int N, i; printf("Digite o valor de N:"); scanf("%d", &N); for(i = 0; i<=N;i++){ printf("%d\n", i); } system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Algoritmos c/ Repeties
EXERCICIOS!
05 PTS
05 PTS
domingo, 15 de setembro de 13
Vetores!
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice.
Notas[5]
10 0 1 2 3 4
ndice
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice.
Notas[5]
10 0
3 1 2 3 4
ndice
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice.
Notas[5]
10 0
3 1
6 2 3 4
ndice
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice.
Notas[5]
10 0
3 1
6 2
9 3 4
ndice
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice.
Notas[5]
10 0
3 1
6 2
9 3
12 4
ndice
domingo, 15 de setembro de 13
Vetores!
Em muitas aplicaes precisamos trabalhar com conjuntos de dados que so semelhantes em tipo. Por exemplo, o conjunto de notas dos alunos de uma turma. Dependendo da natureza do problema, seria conveniente colocar estas informaes sob um mesmo conjunto e referenciar cada dado individual deste conjunto por um nmero ndice. O ndice sempre o tamanho do vetor - 1, N -1.
Notas[5]
10 0
3 1
6 2
9 3
12 4
ndice
domingo, 15 de setembro de 13
Vetores!
Declarao de vetores em C
<tipo> <nome>[<tamanho>];
#include <stdio.h> #include <stdlib.h> int main() { float SALF[100]; int CODF[100]; int FILHOSF[100]; system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Vetores!
Declarao de vetores em C Um ponto IMPORTANTE que deve ser frisado que na linguagem C o ndice de um vetor de N elementos vai de 0 a N-1, ento F[0] o primeiro elemento, F[N-1] o ltimo elemento e F[N] uma varivel invlida, pois contando de 0 a N-1 possumos exatamente N elementos.
domingo, 15 de setembro de 13
Vetores!
Preenchimento de vetores em C
domingo, 15 de setembro de 13
Vetores!
Acessando o contedo de vetores em C
int main() { float notas[3], media; int i; for(i=0;i<=1;i++) { printf("Digite nota:"); scanf("%f",¬as[i]); } notas[2] = 7.5; media = (notas[0] + notas[1] + notas[2])/3; printf(As notas digiadas foram: \n); for(i=0;i<=2;i++) { printf(NOTA[%d]: %f \n, i, notas[i]); } printf(A media eh: %f \n, media); system("PAUSE"); return 0; }
domingo, 15 de setembro de 13
Vetores!
Erros!!!
domingo, 15 de setembro de 13
Vetores!
Erros!!!
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
Inicializao de Vetores
domingo, 15 de setembro de 13
Vetores!
De novo Alocao Dinmica de forma errada!!!!
domingo, 15 de setembro de 13
Vetores!
De novo Alocao Dinmica de forma errada!!!!
domingo, 15 de setembro de 13
Vetores!
De novo Alocao Dinmica de forma errada!!!!
domingo, 15 de setembro de 13
Desao
domingo, 15 de setembro de 13
e....
domingo, 15 de setembro de 13
domingo, 15 de setembro de 13
Desao
05 PTS
15 PTS
20 PTS
domingo, 15 de setembro de 13
Desao
60 PTS
domingo, 15 de setembro de 13