SlideShare une entreprise Scribd logo
1  sur  28
Instituto de Computação – UFAL
Warm Up
 Escrever um algoritmo para ler dois valores
numéricos e apresentar a diferença do maior
pelo menor.
 Faça um algoritmo que leia um número inteiro e
mostre uma mensagem indicando se este
número é par ou ímpar e se é positivo ou
negativo.
 Desafio:
 Determinar a média de 10.000 números dados
 Exemplo:
 {1,50, 80,-1,10, …}
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Algoritmo do desafio
inicio
var numero, soma, media : real
var contador : inteiro
// lerá o primeiro número dado
leia numero
soma = numero
contador = 1
repita enquanto (contador < 10001)
leia numero
soma = soma + numero
contador = contador + 1
fim_enquanto
media = soma / 10000
imprima "O valor da média é "+media
fim
rodrigo@ic.ufal.br
Linguagens
Instituto de Computação – UFAL
Linguagem de Máquina
 Cada tipo de computador entende uma linguagem
específica
 O fabricante do chip define o que ele é capaz de entender
 Esta linguagem é chamada de linguagem de
máquina
 Ela possui apenas 02 símbolos:
 0
 1
 Exemplo:
 1010111100111
 1110101101111
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
O sistema binário
 Contando em binário
 000 = 0
 001 = 1
 010 = 2
 011 = 3
 100 = 4
 101 = 5
 110 = 6
 111 = 7
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Algoritmo para converter em binário
 divisões sucessivas do número por 2, até
quando não for mais possível dividir, anotando-
se o resto de cada divisão
 Quando as divisões terminam, escrevemos os
restos (sempre 0 ou 1), de trás para diante.
 Exemplo:
rodrigo@ic.ufal.br
6 2
3 20
1 21
01
110
Instituto de Computação – UFAL
Binários
 Mas não se preocupem com binários agora
 Vocês irão aprender isso com detalhes na
disciplina de Introdução a Computação
 Por enquanto basta saber que os computadores
entendem essa linguagem de máquina
composta de 0s e 1s
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
E se tivéssemos que programar em binário?
 O que vocês acham?
 Precisamos de linguagens de mais alto nível !
 Mais próximas dos problemas que estamos
resolvendo !
 Mais próximas dos algoritmos que estudamos
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Temos um problema
 Os computadores entendem linguagem de
máquina
 Mas nós queremos escrever nossos programas
em uma linguagem de alto nível
 Existem um programa especial que nos ajuda
nesse trabalho
 Compilador
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Compilador
 Responsável por transformar um programa em
uma linguagem fonte para uma linguagem
destino
 Linguagem fonte
 Uma linguagem de alto nível
 Linguagem destino
 A linguagem de máquina
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Compilador
rodrigo@ic.ufal.br
Programa Fonte Programa Destino
leia numero
repita enquanto
….
010101011101101
Instituto de Computação – UFAL
Exemplos de linguagem de alto nível
 C
 C++
 Pascal
 Java
 Ruby
 Php
 C#
 ILA
 …
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
O programa
 Um programa nada mais é que um algoritmo
escrito em uma linguagem de alto nível
 Código fonte, programa fonte …
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Sintaxe
 Até o momento não nos preocupamos muito
com a sintaxe dos algoritmos
 Sintaxe:
 Conjunto de regras que deve ser obedecido ao se
estabelecer uma instrução
 Define uma gramática de uma linguagem
 Como as palavras podem ser escritas, como elas são
colocadas em conjunto ….
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Sintaxe
 Se o programa fonte contém algum erro de
sintaxe
 O compilador não traduz para a linguagem de
máquina
 Indica que existe um erro de sintaxe
 Geralmente indica onde está o erro
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Semântica
 Um programa pode não conter erros de sintaxe
(e, portanto, pode ser executado) mas a sua
execução pode não fornecer como saída o
resultado esperado para alguma entrada
 Neste caso, dizemos que o programa contém
erros de lógica questão, às vezes, de difícil
detecção
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Mas por que estamos falando de sintaxe e
semântica?
 Para escrevermos programas é necessário
conhecermos a sintaxe da linguagem
 Existe um conjunto de instruções cuja semântica
é comum a quase todas as linguagens de alto
nível
 Portanto
 Aprender a semântica  Maior facilidade em
aprender novas linguagens
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Já vimos várias instruções, lembram?
 Declaração de variáveis
 x, y : inteiro
 Inicialização de variáveis
 i = 1
 Atribuição
 soma = soma + 1
 Repetição
 repita enquanto (contador < 10001)
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Mais instruções
 Execução condicional
se ( pa == pb ) entao
imprima "A resposta é a esfera C"
senao se ( pa > pb ) entao
imprima "A resposta é a esfera A"
senao
imprima “A resposta é B"
fim_se
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Já temos a base para começar a programar
 Próximos passos
 Praticar alguns algoritmos
 Tirar dúvidas na aula
 Introdução a Linguagem C
 Peçam ajuda aos monitores
 Sendo assim, aos exercícios
 Livro … questões 4, 5 e 8
rodrigo@ic.ufal.br
Introdução a Linguagem C
Instituto de Computação – UFAL
Antes de entrar nos detalhes, vamos colocar
a mão na massa
 Objetivo
 Ver como é “a cara” de um código em C
 Passos
 Configurar o seu ambiente de desenvolvimento
 Compilador
 Editor de Código Fonte
 Criar um primeiro programa bem simples
 Compilar
 Executar
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Configurar o Ambiente de Desenvolvimento
 Usaremos o IDE Codeblocks
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Criar um primeiro programa
 Calcular a média de 03 números dados
 Algoritmo
inicio
var n1,n2,n3,media : real
leia n1,n2,n3
media = ( n1 + n2 + n3 ) / 3
imprima "A média é "+media
fim
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Colocando o algoritmo em C
 c:desenvp1media2.c
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Compilar!
 gcc media.c -o media.exe
 Lembre de colocar o seu gcc no PATH
 Iniciar  Meu Computador  Propriedades 
Avançado  Variáveis de Ambiente  Variáveis do
Sistema  Clique em Path  Clique em Editar 
Adicione ;C:Arquivos de
programasCodeBlocksMinGWbin ao final da string
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Executar
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Exercício
 Se o seu sitema operacional é windows
 Refaça os procedimentos realizados aqui
 Se o seu sistema operacional é linux
 Não é necessário, pois o compilador já vem instalado
e configurado
 Editor de código: gedit
 Vá no laboratório, use o linux e compile seus
programas
rodrigo@ic.ufal.br

Contenu connexe

Tendances

Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parteLuis Fernandes
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10André Phillip Bertoletti
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivosFlávio Freitas
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2thomasdacosta
 
Aula 3 módulo i - psi
Aula 3   módulo i - psiAula 3   módulo i - psi
Aula 3 módulo i - psi111111119
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptxwilliam Sarti José
 
Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04André Phillip Bertoletti
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03André Phillip Bertoletti
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 

Tendances (18)

Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parte
 
Algoritmia Tutorial
Algoritmia TutorialAlgoritmia Tutorial
Algoritmia Tutorial
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2
 
O compilador dev c++
O compilador dev c++O compilador dev c++
O compilador dev c++
 
Aula 3 módulo i - psi
Aula 3   módulo i - psiAula 3   módulo i - psi
Aula 3 módulo i - psi
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
 
Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04Lógica de Programação - Unimep/Pronatec - Aula04
Lógica de Programação - Unimep/Pronatec - Aula04
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03Lógica de Programação - Unimep/Pronatec - Aula03
Lógica de Programação - Unimep/Pronatec - Aula03
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Fundamentos de Programação
Fundamentos de ProgramaçãoFundamentos de Programação
Fundamentos de Programação
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 

En vedette

Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1Isaac Barros
 
aula 10 logica de programacao
aula 10 logica de programacaoaula 10 logica de programacao
aula 10 logica de programacaoAislan Rafael
 
aula 07 - Logica de programacao
aula 07 - Logica de programacaoaula 07 - Logica de programacao
aula 07 - Logica de programacaoAislan Rafael
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1Isaac Barros
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 

En vedette (7)

Introdução a estrutura de dados
Introdução a estrutura de dadosIntrodução a estrutura de dados
Introdução a estrutura de dados
 
Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1
 
aula 10 logica de programacao
aula 10 logica de programacaoaula 10 logica de programacao
aula 10 logica de programacao
 
aula 07 - Logica de programacao
aula 07 - Logica de programacaoaula 07 - Logica de programacao
aula 07 - Logica de programacao
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 

Similaire à INTRO-C-ALGORITMOS

Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoFelipeDi
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoandreluizlugon
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfLuanaBatista74
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoUbirajara Cavaco
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programaçãoEdu Queiroz
 
Introducao ao small basic
Introducao ao small basicIntroducao ao small basic
Introducao ao small basicGabriel Kois
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Construção de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfConstrução de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfGerhard Saboia
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdfAPlima
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Alex Camargo
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1Diego Rodrigues
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programaçãoAndrei Bastos
 

Similaire à INTRO-C-ALGORITMOS (20)

Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Introducao ao small basic
Introducao ao small basicIntroducao ao small basic
Introducao ao small basic
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Construção de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfConstrução de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdf
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
 
Apostila c
Apostila cApostila c
Apostila c
 

Plus de Isaac Barros

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Isaac Barros
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Isaac Barros
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Isaac Barros
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Isaac Barros
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Isaac Barros
 
Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Isaac Barros
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Isaac Barros
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1Isaac Barros
 
Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1Isaac Barros
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1Isaac Barros
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Isaac Barros
 

Plus de Isaac Barros (13)

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1
 
Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1
 
Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1
 

INTRO-C-ALGORITMOS

  • 1. Instituto de Computação – UFAL Warm Up  Escrever um algoritmo para ler dois valores numéricos e apresentar a diferença do maior pelo menor.  Faça um algoritmo que leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar e se é positivo ou negativo.  Desafio:  Determinar a média de 10.000 números dados  Exemplo:  {1,50, 80,-1,10, …} rodrigo@ic.ufal.br
  • 2. Instituto de Computação – UFAL Algoritmo do desafio inicio var numero, soma, media : real var contador : inteiro // lerá o primeiro número dado leia numero soma = numero contador = 1 repita enquanto (contador < 10001) leia numero soma = soma + numero contador = contador + 1 fim_enquanto media = soma / 10000 imprima "O valor da média é "+media fim rodrigo@ic.ufal.br
  • 4. Instituto de Computação – UFAL Linguagem de Máquina  Cada tipo de computador entende uma linguagem específica  O fabricante do chip define o que ele é capaz de entender  Esta linguagem é chamada de linguagem de máquina  Ela possui apenas 02 símbolos:  0  1  Exemplo:  1010111100111  1110101101111 rodrigo@ic.ufal.br
  • 5. Instituto de Computação – UFAL O sistema binário  Contando em binário  000 = 0  001 = 1  010 = 2  011 = 3  100 = 4  101 = 5  110 = 6  111 = 7 rodrigo@ic.ufal.br
  • 6. Instituto de Computação – UFAL Algoritmo para converter em binário  divisões sucessivas do número por 2, até quando não for mais possível dividir, anotando- se o resto de cada divisão  Quando as divisões terminam, escrevemos os restos (sempre 0 ou 1), de trás para diante.  Exemplo: rodrigo@ic.ufal.br 6 2 3 20 1 21 01 110
  • 7. Instituto de Computação – UFAL Binários  Mas não se preocupem com binários agora  Vocês irão aprender isso com detalhes na disciplina de Introdução a Computação  Por enquanto basta saber que os computadores entendem essa linguagem de máquina composta de 0s e 1s rodrigo@ic.ufal.br
  • 8. Instituto de Computação – UFAL E se tivéssemos que programar em binário?  O que vocês acham?  Precisamos de linguagens de mais alto nível !  Mais próximas dos problemas que estamos resolvendo !  Mais próximas dos algoritmos que estudamos rodrigo@ic.ufal.br
  • 9. Instituto de Computação – UFAL Temos um problema  Os computadores entendem linguagem de máquina  Mas nós queremos escrever nossos programas em uma linguagem de alto nível  Existem um programa especial que nos ajuda nesse trabalho  Compilador rodrigo@ic.ufal.br
  • 10. Instituto de Computação – UFAL Compilador  Responsável por transformar um programa em uma linguagem fonte para uma linguagem destino  Linguagem fonte  Uma linguagem de alto nível  Linguagem destino  A linguagem de máquina rodrigo@ic.ufal.br
  • 11. Instituto de Computação – UFAL Compilador rodrigo@ic.ufal.br Programa Fonte Programa Destino leia numero repita enquanto …. 010101011101101
  • 12. Instituto de Computação – UFAL Exemplos de linguagem de alto nível  C  C++  Pascal  Java  Ruby  Php  C#  ILA  … rodrigo@ic.ufal.br
  • 13. Instituto de Computação – UFAL O programa  Um programa nada mais é que um algoritmo escrito em uma linguagem de alto nível  Código fonte, programa fonte … rodrigo@ic.ufal.br
  • 14. Instituto de Computação – UFAL Sintaxe  Até o momento não nos preocupamos muito com a sintaxe dos algoritmos  Sintaxe:  Conjunto de regras que deve ser obedecido ao se estabelecer uma instrução  Define uma gramática de uma linguagem  Como as palavras podem ser escritas, como elas são colocadas em conjunto …. rodrigo@ic.ufal.br
  • 15. Instituto de Computação – UFAL Sintaxe  Se o programa fonte contém algum erro de sintaxe  O compilador não traduz para a linguagem de máquina  Indica que existe um erro de sintaxe  Geralmente indica onde está o erro rodrigo@ic.ufal.br
  • 16. Instituto de Computação – UFAL Semântica  Um programa pode não conter erros de sintaxe (e, portanto, pode ser executado) mas a sua execução pode não fornecer como saída o resultado esperado para alguma entrada  Neste caso, dizemos que o programa contém erros de lógica questão, às vezes, de difícil detecção rodrigo@ic.ufal.br
  • 17. Instituto de Computação – UFAL Mas por que estamos falando de sintaxe e semântica?  Para escrevermos programas é necessário conhecermos a sintaxe da linguagem  Existe um conjunto de instruções cuja semântica é comum a quase todas as linguagens de alto nível  Portanto  Aprender a semântica  Maior facilidade em aprender novas linguagens rodrigo@ic.ufal.br
  • 18. Instituto de Computação – UFAL Já vimos várias instruções, lembram?  Declaração de variáveis  x, y : inteiro  Inicialização de variáveis  i = 1  Atribuição  soma = soma + 1  Repetição  repita enquanto (contador < 10001) rodrigo@ic.ufal.br
  • 19. Instituto de Computação – UFAL Mais instruções  Execução condicional se ( pa == pb ) entao imprima "A resposta é a esfera C" senao se ( pa > pb ) entao imprima "A resposta é a esfera A" senao imprima “A resposta é B" fim_se rodrigo@ic.ufal.br
  • 20. Instituto de Computação – UFAL Já temos a base para começar a programar  Próximos passos  Praticar alguns algoritmos  Tirar dúvidas na aula  Introdução a Linguagem C  Peçam ajuda aos monitores  Sendo assim, aos exercícios  Livro … questões 4, 5 e 8 rodrigo@ic.ufal.br
  • 22. Instituto de Computação – UFAL Antes de entrar nos detalhes, vamos colocar a mão na massa  Objetivo  Ver como é “a cara” de um código em C  Passos  Configurar o seu ambiente de desenvolvimento  Compilador  Editor de Código Fonte  Criar um primeiro programa bem simples  Compilar  Executar rodrigo@ic.ufal.br
  • 23. Instituto de Computação – UFAL Configurar o Ambiente de Desenvolvimento  Usaremos o IDE Codeblocks rodrigo@ic.ufal.br
  • 24. Instituto de Computação – UFAL Criar um primeiro programa  Calcular a média de 03 números dados  Algoritmo inicio var n1,n2,n3,media : real leia n1,n2,n3 media = ( n1 + n2 + n3 ) / 3 imprima "A média é "+media fim rodrigo@ic.ufal.br
  • 25. Instituto de Computação – UFAL Colocando o algoritmo em C  c:desenvp1media2.c rodrigo@ic.ufal.br
  • 26. Instituto de Computação – UFAL Compilar!  gcc media.c -o media.exe  Lembre de colocar o seu gcc no PATH  Iniciar  Meu Computador  Propriedades  Avançado  Variáveis de Ambiente  Variáveis do Sistema  Clique em Path  Clique em Editar  Adicione ;C:Arquivos de programasCodeBlocksMinGWbin ao final da string rodrigo@ic.ufal.br
  • 27. Instituto de Computação – UFAL Executar rodrigo@ic.ufal.br
  • 28. Instituto de Computação – UFAL Exercício  Se o seu sitema operacional é windows  Refaça os procedimentos realizados aqui  Se o seu sistema operacional é linux  Não é necessário, pois o compilador já vem instalado e configurado  Editor de código: gedit  Vá no laboratório, use o linux e compile seus programas rodrigo@ic.ufal.br