SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Aula 08
Linguagem C
Ênio Prates Vasconcelos Filho
Faculdades Alfa
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Analisando um código em C;
Δ Declarando variáveis;
Δ Introdução Básica as Entradas e Saídas
Δ Controle de Fluxo;
Δ Estruturas de Repetição:
• While;
• Repeat...until;
• For;
Δ Exercícios;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf ("Ola! Eu estou vivo!n");
return(0);
}
Δ Compilando e executando este programa, veremos que ele coloca a
mensagem Ola! Eu estou vivo! na tela;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (1)
#include <stdio.h>
Δ A linha #include diz ao compilador que ele deve incluir o arquivo-
cabeçalho stdio.h.
Δ Neste arquivo existem declarações de funções úteis para entrada e saída de
dados
• std = standard, padrão em inglês;
• io = Input/Output, entrada e saída;
• ==> stdio = Entrada e saída padronizadas;
Δ Toda vez que for necessário usar uma destas funções deve-se incluir este
comando.
Δ O C possui diversos arquivos-cabeçalhos;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (2)
/* Um Primeiro Programa */
Δ Quando fazemos um programa, uma boa prática é usar comentários que
ajudem a entender o funcionamento do mesmo;
Δ No caso acima, temos um comentário: /* Um Primeiro Programa
*/;
Δ O compilador C desconsidera qualquer coisa que esteja começando com /*
e terminando com */.
Δ Um comentário pode, inclusive, ter mais de uma linha;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (3)
int main ()
Δ A linha int main() indica que estamos definindo uma função de nome
main;
Δ Todos os programas em C tem que ter uma função main, pois é esta função
que será chamada quando o programa for executado;
Δ O conteúdo da função é delimitado por chaves { }.
Δ O código que estiver dentro das chaves será executado sequencialmente
quando a função for chamada;
Δ A palavra int indica que esta função retorna um inteiro;
Δ O que significa este retorno será visto posteriormente, quando estudarmos
um pouco mais detalhadamente as funções do C;
Δ A última linha do programa, return(0); indica o número inteiro que
está sendo retornado pela função, no caso o número 0;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (4)
printf ("Ola! Eu estou vivo!n");
Δ A real ação do programa;
Δ O programa chama a função printf(), passando a string (uma string é
uma sequência de caracteres) "Ola! Eu estou vivo!n" como
argumento;
Δ Por causa do uso da função printf() pelo programa que devemos
incluir o arquivo-cabeçalho stdio.h.
Δ A função printf(), irá apenas colocar a string na tela do computador.
Δ O “n” É a constante barra invertida de "new line" e é interpretado como
um comando de mudança de linha;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C - 2
#include <stdio.h>
int main ()
{
int Dias; /* Declaracao de Variaveis */
float Anos;
printf ("Entre com o numero de dias: "); /* Entrada de
Dados */
scanf ("%d",&Dias);
Anos=Dias/365; /* Conversao Dias->Anos */
printf ("nn%d dias equivalem a %f anos.n",Dias,Anos);
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (1)
int Dias;
float Anos;
Δ São declaradas duas variáveis, chamadas Dias e Anos.
Δ A primeira é um int(inteiro) e a segunda um float(ponto flutuante);
Δ As variáveis declaradas como ponto flutuante existem para armazenar
números que possuem casas decimais, como 5,1497;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (2)
printf ("Entre com o numero de dias: ");
Δ É feita uma chamada à função printf(), que coloca uma mensagem na
tela;
scanf ("%d",&Dias);
Δ Queremos agora ler um dado que ser· fornecido pelo usu·rio e coloc·-lo na
variável inteira Dias;
Δ Usamos então o scanf().
Δ A string "%d"diz à função que iremos ler um inteiro.
Δ O segundo parâmetro passado à função diz que o dado lido deverá ser
armazenado na variável Dias;
Δ É importante ressaltar a necessidade de se colocar um “&“ antes do nome
da variável a ser lida quando se usa a função scanf();
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (3)
Anos=Dias/365.00;
Δ Temos, então, uma expressão matemática simples que atribui a Anos o valor de
Dias, dividido por 365;
Δ Como Anos é uma variável float, o compilador fará uma conversão automática
entre os tipos das variáveis;
printf ("nn%d dias equivalem a %f anos.n",Dias,Anos);
Δ A segunda chamada à função printf() tem três argumentos:
• A string "nn%d dias equivalem a %f anos.n“ diz à função para:
o pular duas linhas;
o Colocar um inteiro na tela;
o Colocar a mensagem "dias equivalem a", colocar um valor float na tela,
o Colocar a mensagem " anos.“ e pular outra linha.
o Os outros parâmetros são as variáveis, Dias e Anos, das quais devem ser lidos os
valores do inteiro e do float, respectivamente;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ O que faz o seguinte programa?
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
printf("%d",x);
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Definições em C
Δ Diferentemente do Portugol, a Atribuição em C é feita com
=
soma = 10 + 10;
Δ Observe que os comandos são finalizados com “;”
int soma;
printf(“hello world”);
scanf(“%d”,&soma);
printf(“A soma é: %d”,soma);
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Declarando Variáveis
Δ Na linguagem C, há 5 tipos básicos de variáveis:
• Int;
• float;
• double;
• char;
• void;
Δ Para se declarar uma variável, escreve-se o nome de seu tipo, salta-se um
espaço em branco, em seguida o nome do seu identificador e ponto e
vírgula para finalizar a declaração:
• int nome_da_variável;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Declarando Variáveis
Δ Se mais de uma variável for do mesmo tipo básico, elas podem ser
declaradas juntas, apenas separadas por vírgulas.
int Variavel_1, variável_2, variável 3;
Δ Pode-se inicializar uma variável na sua declaração atribuindo-se a ela um
valor inicial compatível com seu tipo:
int Variavel_1=0;
Δ Toda variável precisa ser declarada antes de ser utilizada;
Δ Exemplos:
• char nome[20], letra, zero=’0’;
• float soma=0;
• int n1, n2;
• float raiz1, Total_dos_Salarios;
• char nome_de_familia[30]=“Menezes”;
• int idade, cont=0;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Operadores
Δ Os operadores aritméticos básicos
são:
Δ + (adição);
Δ - (subtração);
Δ *(multiplicação);
Δ / (quociente da divisão real);
Δ ++( adiciona 1);
Δ --(subtrai 1).
Δ Alguns operadores aritméticos mais
avançados são:
Δ % (resto da divisão inteira);
Δ /(quociente da divisão inteira);
Δ sqrt( )(raiz quadrada);
Δ abs( )(valor absoluto).
Δ Os operadores relacionais
são:
Δ > (maior que);
Δ >= (maior ou igual a);
Δ < (menor que);
Δ <= (menor ou igual a);
Δ == (igual a);
Δ != (diferente de).
Δ Os operadores lógicos
são:
Δ && (e/AND – conjunção);
Δ || (ou/OR – disjunção);
Δ ! (operador não –
negação);
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Caracteres (char)
Δ Os caracteres são um tipo de dado: o char;
Δ O C trata os caracteres ('a', 'b', 'x', etc ...) como sendo variáveis de um byte
(8 bits);
Δ Um bit é a menor unidade de armazenamento de informações em um
computador;
Δ Também podemos usar um char para armazenar valores numéricos
inteiros, além de usá-lo para armazenar caracteres de texto;
Δ Para indicar um caractere de texto usamos apóstrofes (aspas simples);
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Caracteres (char);
#include <stdio.h>
int main ()
{
char Ch;
Ch='D';
printf ("%c",Ch);
return(0);
}
Δ No programa acima, %c indica que printf() deve colocar um caractere
na tela.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tabela Ascii
Δ A Tabela ASCII (American Standard Code for Information Interchange) é
usada pela maior parte da indústria de computadores para a troca de
informações.
Δ Cada caractere é representado por um código de 8 bits (um byte).
Δ 0 – 31: Caracteres de Controle (não imprimíveis);
Δ 32 – 127: Tabela Ascii Padrão;
Δ 128 – 255: Tabela Ascii Estendida (acentos e especiais);
Δ Tabela ascii
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Strings (char [])
Δ No C, uma string é um vetor de caracteres terminado com um caractere nulo;
Δ O caractere nulo é um caractere com valor inteiro igual a zero (código ASCII igual
a 0);
Δ O terminador nulo também pode ser escrito usando a convenção de barra
invertida do C como sendo '0';
Δ Para declarar uma string, podemos usar o seguinte
Δ formato geral:
char nome_da_string[tamanho];
Δ Isto declara um vetor de caracteres (uma string) com número de posições igual a
tamanho.
Δ Como temos que reservar um caractere para ser o terminador nulo, temos que
declarar o comprimento da string como sendo, no mínimo, um caractere maior
que a maior string que pretendemos armazenar.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Strings (char [])
Δ Vamos supor que declaremos uma string de 7 posições e coloquemos a
palavra “Joao” nela. Teremos:
char palavra[7]=“Joao”;
Δ No caso acima, as duas células não usadas têm valores indeterminados.
Δ Isto acontece porque o C não inicializa variáveis, cabendo ao programador
esta tarefa;
Δ Portanto as únicas células que são inicializadas são as que contêm os
caracteres 'J', 'o', 'a', 'o' e '0' .
palavra J o a o 0
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Strings (char [])
#include <stdio.h>
int main ()
{
char palavra[7]="Joao"; //definindo uma string de tamanho 7
char string[10]; //definindo uma string de tamanho 10
printf ("Digite uma string: ");//Escreve na tela
scanf("%s",&string); //Lê a entrada de dados do usuário
printf ("nnA palavra eh %s",palavra);//imprime a variável palavra
printf ("nnVoce digitou %s",string); //imprime a string digitada
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Como as strings são vetores de caracteres, para se acessar um determinado
caractere de uma string, basta "indexarmos", ou seja, usarmos um índice
para acessarmos o caractere desejado dentro da string;
• Suponha uma string chamada str.
• Podemos acessar a segunda letra de str da seguinte forma:
str[1] = 'a';
Δ Na linguagem C, o índice começa em zero!
Δ Assim, a primeira letra da string sempre estará na posição 0.
Δ A segunda letra sempre estará na posição 1 e assim sucessivamente.
char palavra[7]=“Joao”;
palavra J o a o 0
(0) (1) (2) (3) (4) (5) (6)
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Segue um exemplo que imprimirá a segunda letra da string "Joao". Em seguida, ele mudará esta letra e
apresentará a string no final:
#include <stdio.h>
int main()
{
char str[10] = "Joao";//define a string
printf("nnString: %s", str);//imprime a string
printf("nSegunda letra: %c", str[1]);//imprime a 2ª letra da string
str[1] = 'U';//muda a 2ª letra da string;
printf("nAgora a segunda letra eh: %c", str[1]);
//imprime a 2ª letra da string após a modificação
printf("nnString resultante: %s", str);//imprime a string modificada
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Podemos, ainda, usar o char para imprimir um determinado caractere em seu valor decimal da tabela
Ascii:
#include <stdio.h>
int main()
{
char str[10] = "Joao";//define a string
printf("nSegunda letra: %d", str[1]);//imprime a 2ª letra em seu valor
na tabela ascii
str[1] = 'U';//muda a 2ª letra da string;
printf("nAgora a segunda letra eh: %c", str[1]);
//imprime a 2ª letra da string após a modificação
printf("nnString resultante: %s", str);//imprime a string modificada
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Saída de Dados – printf()
printf (string_de_controle,lista_de_argumentos);
Δ A string de controle, apresenta uma descrição de tudo que a função vai
colocar na tela;
Δ A string de controle mostra não apenas os caracteres que devem ser
colocados na tela, mas também quais as variáveis e suas respectivas
posições.
Δ Isto é feito usando-se os códigos de controle, que usam a notação %.
Δ Na string de controle indicamos quais, de qual tipo e em que posição estão
as variáveis a serem apresentadas.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Saída de Dados – printf()
printf (string_de_controle,lista_de_argumentos);
Δ Alguns códigos de Controle:
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Saída de Dados – printf()
printf (string_de_controle,lista_de_argumentos);
Δ Alguns exemplos de printf:
Δ printf ("Teste %% %%")
• Teste % %
Δ printf ("%f",40.345)
• 40.345
Δ printf ("Um caractere %c e um inteiro %d",'D',120)
• Um caractere D e um inteiro 120
Δ printf ("%s eh um exemplo","Este")
• Este eh um exemplo
Δ printf ("%s%d%%","Juros de ",10)
• Juros de 10%
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Entrada de Dados – scanf()
scanf (string-de-controle,lista-de-argumentos);
Δ Usando a função scanf(), podemos pedir dados ao usuário.
Δ Já vimos vários exemplos ao longo dessa aula;
Δ Devemos ficar atentos a fim de colocar o mesmo número de argumentos
que o de códigos de controle na string de controle;
Δ Outra coisa importante é colocarmos o & antes das variáveis da lista de
argumentos!
Δ Exemplos:
scanf("%s",&string);
scanf(“%d”,&numero);
scanf(“%d%s”,&numero,&string);
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Escreva um programa que leia um caractere digitado pelo usuário, imprima
o caractere digitado e o código ASCII correspondente a este caractere;
Δ Escreva um programa que leia duas strings e as coloque na tela. Imprima
também a segunda letra de cada string.
Δ Escreva um programa que peça ao usuário para digitar a base e a altura de
um retângulo. Em seguida, imprima a área desse retângulo na tela
(área=base*altura);
Δ Faça um algoritmo que Leia o nome e sobrenome de um usuário em
variáveis separadas e, em seguida, apresente, NA MESMA LINHA, nome e
sobrenome;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
Δ O comando if é equivalente ao se...faça(do porgugol);
if (condição){
//bloco de comandos
}
Δ A condição do comando if é uma expressão que será avaliada;
Δ Se o resultado for zero a declaração não será executada (condição FALSA);
• Se o resultado for qualquer coisa diferente de zero a declaração será
executada (condição VERDADEIRA);
Δ A declaração pode ser um bloco de código ou apenas um comando.
Δ Note que, no caso da declaração ser um bloco de código, não é necessário
(e nem permitido) o uso do ; no final do bloco.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
#include <stdio.h>
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if (num>10) //verificamos se num>10
printf ("nnO numero e maior que 10");
if (num==10) //verificamos se num=10 (observe que é usado o ==)
{
printf ("nnVoce acertou!n");
printf ("O numero e igual a 10.");
}
if (num<10) //verificamos se num<10
printf ("nnO numero e menor que 10");
return (0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
Δ Repare que, quando queremos testar igualdades usamos o operador “==“ e
não “=”,
Δ Isto porque o operador “=” representa apenas uma atribuição.
Δ Pode parecer estranho á primeira vista, mas se escrevêssemos:
if (num=10) ... /* Isto está errado! */
Δ O compilador iria atribuir o valor 10 à variável num e a expressão num=10
iria retornar 10, fazendo com que o nosso valor de num fosse modificado e
forçando a declaração a ser executada sempre;
Δ Este problema gera erros frequentes entre iniciantes e, portanto, muita
atenção deve ser tomada!
Δ Os operadores de comparação são: == (igual), != (diferente de),> (maior
que), < (menor que), >= (maior ou igual), <= (menor ou igual).
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if – EVITE ERROS!
#include <stdio.h>
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if (num>10) //verificamos se num>10
{
printf ("nnO numero e maior que 10");
}
if (num==10) //verificamos se num=10 (observe que é usado o ==)
{
printf ("nnVoce acertou!n");
printf ("O numero e igual a 10.");
}
if (num<10) //verificamos se num<10
{
printf ("nnO numero e menor que 10");
}
return (0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Faça um programa em C que peça ao usuário que insira dois valores
inteiros. Faça a soma desses dois valores e armazene em outra variável. Em
seguida, escreva na tela se a soma é maior, menor ou igual a 50, escreva os
números que o usuário digitou e escreva o resultado da soma;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
#include <stdio.h>
int main(){
int a,b,soma;
printf("Escreva o 1o numero: ");
scanf("%d",&a);
printf("nEscreva o 2o numero: ");
scanf("%d",&b);
soma=a+b;
if(soma>50){
printf("nO numero eh maior que 50");
}
if(soma==50){
printf("nO numero eh igual a 50");
}
if(soma<50){
printf("nO numero eh menor que 50");
}
printf("nA soma dos valores eh: %d",soma);
printf("nOs numeros digitados foram: %d e %d",a,b);
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if/else
Δ Análogo ao comando se...então/senão;
if (condição){
//Bloco de comandos 1
}
else {
//Bloco de comandos 2
}
Δ A expressão da condição será avaliada. Se ela for diferente de zero o bloco
de comandos 1 será executado;
Δ Se for zero, o bloco de comandos 2 será executado.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if/else
#include <stdio.h>
int main(){
int a,b,soma;
printf("Escreva o 1o numero: ");
scanf("%d",&a);
printf("nEscreva o 2o numero: ");
scanf("%d",&b);
soma=a+b;
if(soma>50){
printf("nO numero eh maior que 50");
}else if(soma==50){
printf("nO numero eh igual a 50");
}else{
printf("nO numero eh menor que 50");
}
printf("nA soma dos valores eh: %d",soma);
printf("nOs numeros digitados foram: %d e
%d",a,b);
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Faça um programa em C que leia dois números A e B e imprima o maior
deles;
Δ Faça um programa em C que leia 3 números inteiros distintos e escreva o
menor deles.
Δ Faça um programa em C que leia quatro números (Opção , Num1 , Num2 e
Num3) e mostre o valor de Num1 se Opção for igual a 2; o valor de Num2
se Opção for igual a 3; e o valor de Num3 se Opção for igual a 4. Se o
usuário digitar qualquer valor diferente, deve ser apresentada a mensagem
de opção Inválida;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo - switch
Δ Como já vimos, em algumas
situações, temos várias opções a
escolher. Como fazer isso de
modo mais rápido?
Switch(expressão)
Δ Comando de seleção múltipla
que testa sucessivamente o valor
de uma expressão contra uma
lista de valores do tipo inteiro ou
de caracteres.
Δ Quando o valor coincide, os
comandos associados àquele
valor são executados.
switch (expressão){
case valor1:
<comandos_1>;
break;
case valor2:
<comandos_2>;
break;
...case valorn:
<comandos_n>;
break;
default:
<comandos_default>;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo - switch
Δ A expressão deve resultar num valor inteiro do tipo int ou char.
Δ Compara-se esse resultado com o valor1 até valorn:
• se for encontrada alguma equivalência, o programa passa a executar os
comandos a partir deste ponto, até encontrar uma instrução break;
• se nenhuma equivalência for encontrada, os comandos relativos a default são
executados;
ocaso não haja a opção default, nenhum comando é executado;
• caso a instrução break não seja encontrada, todos os comandos vão sendo
testados até se chegar ao final do comando “switch”;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
case 4:
printf("Quarta-feira");
break;
case 5:
printf("Quinta-feira");
break;
case 6:
printf("Sexta-feira");
break;
case 7:
printf("Sábado");
break;
default:
printf("Você digitou um dia
inválido!");
}
return(0);
}
#include<stdio.h>
int main(){
int numero;
printf("Insira um numero(1-7): n");
scanf("%d",&numero);
switch(numero){
case 1:
printf("Domingo");
break;
case 2:
printf("Segunda-feira");
break;
case 3:
printf("Terça-feira");
break;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ O loop (laço) for é usado para repetir um comando, ou bloco de comandos,
um determinado número vezes, de maneira que se possa ter um bom
controle sobre o loop;
Δ Apresenta um mecanismo de contagem automática, dentro de um intervalo
definido pelo programador;
Δ Análogo ao de...ate...passo...faca;
Δ Sua forma geral é:
for(inicialização;condição;incremento ou decremento){
//bloco de comandos
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ As expressões inicial e incremento ou decremento são, em geral, atribuições
à variável de controle e condição é uma expressão relacional que envolve a
mesma variável de controle.
Δ A semântica do comando “for” é:
• A expressão inicial é avaliada, consistindo geralmente na inicialização de uma
variável de controle;
• Em seguida, é avaliada a condição:
ose a condição for verdadeira, o <bloco de comandos> é executado e, ao chegar
ao delimitador } ou final do comando “for”, automaticamente se incrementa ou
se decrementa a variável de controle e se retorna à avaliação da condição;
• Quando a condição ficar falsa, ou seja, o incremento/decremento fizer a
variável de controle chegar no limite da condição, o comando de repetição é
finalizado;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ Exemplo: Façamos um programa que imprima os caracteres da tabela ASCII
padrão (entre o número 32 e o 127) e sua representação decimal;
#include <stdio.h>
int main(void)
{
int i;
for (i = 32; i <= 126; i++)
{
printf("%c [%d]n", i, i);
}
return 0;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
1. Desenvolva, em C, um algoritmo que efetue o cálculo da média de quilômetros por litro gasta em uma
viagem. Para obter o cálculo, o usuário deve fornecer o tempo gasto (variável TEMPO), a velocidade
média (variável VELOCIDADE) durante a viagem e o total de litros de combustível gastos (variável
LITROS). Desta forma, será possível obter a distância percorrida com a fórmula 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴 =
𝑇𝐸𝑀𝑃𝑂 𝑥 𝑉𝐸𝐿𝑂𝐶𝐼𝐷𝐴𝐷𝐸. A partir do valor da distância, basta calcular a média de quilômetros por litro
utilizada na viagem com a fórmula: 𝑀É𝐷𝐼𝐴 = 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴/𝐿𝐼𝑇𝑅𝑂𝑆. O programa deve apresentar,
após todos os cálculos, os valores da velocidade média, tempo gasto na viagem, a distância percorrida,
a quantidade de litros utilizada na viagem e a média de quilômetros por litro. Considere que o usuário
digitará APENAS números positivos e diferentes de zero;
2. Elabore, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), dez valores
numéricos reais e apresente no final a soma e a média dos valores lidos;
3. Desenvolva, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), os valores
de três notas escolares bimestrais de um aluno, representadas pelas variáveis N1, N2 e N3. Calcule a
média aritmética (variável M01) desse aluno e apresente a mensagem "Aprovado”, se a média obtida
for maior ou igual a 7; caso contrário, o programa deve solicitar a Quarta nota (nota de exame,
representada pela variável NE) do aluno e calcular uma nova média aritmética (variável M02) entre a
nota de exame e a primeira média aritmética. Se o valor da nova média for maior ou igual a 6,
apresentar a mensagem "Aprovado em exame”; caso contrário, apresentar a mensagem "Reprovado”.
Informar também, após a apresentação das mensagens, o valor da média obtida pelo aluno
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
4. Elabore, em pseudocódigo, de um programa que efetue o cálculo da
fatorial de um número inserido pelo usuário. Em seguida, imprima na tela
o valor calculado. Caso o usuário insira um número negativo, indique que
não é um número aceitável. Se o usuário inserir o número 0, indique que
o fatorial é 1.
Relembrando:
Fatorial de 5: 5! = 5*4*3*2*1;
Fatorial de 0: 0! = 1;
Fatorial de -2: -2! = Não existe;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
5. Faça um algoritmo em C que leia 100 números inteiros e escreva, na tela, a média, o
menor número e o maior número (não é necessário usar VETORES!);
6. Faça um algoritmo que:
• Obtenha o valor para a variável HT (horas trabalhadas no mês);
• Obtenha o valor para a variável VH (valor hora trabalhada):
• Obtenha o valor para a variável PD (percentual de desconto);
• Calcule o salário bruto => SB = HT * VH;
• Calcule o total de desconto => TD = (PD/100)*SB;
• Calcule o salário líquido => SL = SB – TD;
• Apresente os valores de: Horas trabalhadas, Salário Bruto, Desconto, Salário Liquido.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
7. A conversão de graus Farenheit para centígrados é obtida por 𝐶 =
5(𝐹−32)
9
. Faça um programa em C que calcule e escreva uma tabela
de centígrados em função de graus farenheit, que variam de 50 a 150
de 1 em 1.
8. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas
gostaram ou não de um novo produto lançado no mercado. Para
isso, forneceu o sexo do entrevistado e sua resposta (sim ou não).
Sabendo-se que foram entrevistados 2.000 pessoas, fazer um programa
que calcule e escreva:
a) o número de pessoas que responderam sim
b) o número de pessoas que responderam não
c) a porcentagem de pessoas do sexo feminino que responderam sim
d) a porcentagem de pessoas do sexo masculino que responderam não
DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;

Mais conteúdo relacionado

Semelhante a C Linguagem Introdução

Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Lucas Antonio
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2engenhariadecomputacao
 
Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)Daniel Barão
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfvictorlopes714651
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++Jonas Silva
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 

Semelhante a C Linguagem Introdução (20)

Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
 
Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Apostila C++
Apostila C++ Apostila C++
Apostila C++
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
C++ basico
C++ basicoC++ basico
C++ basico
 

Mais de Enio Filho

Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfEnio Filho
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfEnio Filho
 
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfEnio Filho
 
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdfAlgoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdfEnio Filho
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfEnio Filho
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfEnio Filho
 
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdfAlgoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdfEnio Filho
 
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdfAlgoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdfEnio Filho
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfEnio Filho
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEnio Filho
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEnio Filho
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Enio Filho
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUCEnio Filho
 

Mais de Enio Filho (13)

Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
 
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
 
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdfAlgoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
 
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdfAlgoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
 
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdfAlgoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOT
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOT
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUC
 

Último

Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 

Último (20)

Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 

C Linguagem Introdução

  • 1. Aula 08 Linguagem C Ênio Prates Vasconcelos Filho Faculdades Alfa
  • 2. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tópicos Δ Analisando um código em C; Δ Declarando variáveis; Δ Introdução Básica as Entradas e Saídas Δ Controle de Fluxo; Δ Estruturas de Repetição: • While; • Repeat...until; • For; Δ Exercícios;
  • 3. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C #include <stdio.h> /* Um Primeiro Programa */ int main () { printf ("Ola! Eu estou vivo!n"); return(0); } Δ Compilando e executando este programa, veremos que ele coloca a mensagem Ola! Eu estou vivo! na tela;
  • 4. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C (1) #include <stdio.h> Δ A linha #include diz ao compilador que ele deve incluir o arquivo- cabeçalho stdio.h. Δ Neste arquivo existem declarações de funções úteis para entrada e saída de dados • std = standard, padrão em inglês; • io = Input/Output, entrada e saída; • ==> stdio = Entrada e saída padronizadas; Δ Toda vez que for necessário usar uma destas funções deve-se incluir este comando. Δ O C possui diversos arquivos-cabeçalhos;
  • 5. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C (2) /* Um Primeiro Programa */ Δ Quando fazemos um programa, uma boa prática é usar comentários que ajudem a entender o funcionamento do mesmo; Δ No caso acima, temos um comentário: /* Um Primeiro Programa */; Δ O compilador C desconsidera qualquer coisa que esteja começando com /* e terminando com */. Δ Um comentário pode, inclusive, ter mais de uma linha;
  • 6. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C (3) int main () Δ A linha int main() indica que estamos definindo uma função de nome main; Δ Todos os programas em C tem que ter uma função main, pois é esta função que será chamada quando o programa for executado; Δ O conteúdo da função é delimitado por chaves { }. Δ O código que estiver dentro das chaves será executado sequencialmente quando a função for chamada; Δ A palavra int indica que esta função retorna um inteiro; Δ O que significa este retorno será visto posteriormente, quando estudarmos um pouco mais detalhadamente as funções do C; Δ A última linha do programa, return(0); indica o número inteiro que está sendo retornado pela função, no caso o número 0;
  • 7. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C (4) printf ("Ola! Eu estou vivo!n"); Δ A real ação do programa; Δ O programa chama a função printf(), passando a string (uma string é uma sequência de caracteres) "Ola! Eu estou vivo!n" como argumento; Δ Por causa do uso da função printf() pelo programa que devemos incluir o arquivo-cabeçalho stdio.h. Δ A função printf(), irá apenas colocar a string na tela do computador. Δ O “n” É a constante barra invertida de "new line" e é interpretado como um comando de mudança de linha;
  • 8. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C - 2 #include <stdio.h> int main () { int Dias; /* Declaracao de Variaveis */ float Anos; printf ("Entre com o numero de dias: "); /* Entrada de Dados */ scanf ("%d",&Dias); Anos=Dias/365; /* Conversao Dias->Anos */ printf ("nn%d dias equivalem a %f anos.n",Dias,Anos); return(0); }
  • 9. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C – 2 (1) int Dias; float Anos; Δ São declaradas duas variáveis, chamadas Dias e Anos. Δ A primeira é um int(inteiro) e a segunda um float(ponto flutuante); Δ As variáveis declaradas como ponto flutuante existem para armazenar números que possuem casas decimais, como 5,1497;
  • 10. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C – 2 (2) printf ("Entre com o numero de dias: "); Δ É feita uma chamada à função printf(), que coloca uma mensagem na tela; scanf ("%d",&Dias); Δ Queremos agora ler um dado que ser· fornecido pelo usu·rio e coloc·-lo na variável inteira Dias; Δ Usamos então o scanf(). Δ A string "%d"diz à função que iremos ler um inteiro. Δ O segundo parâmetro passado à função diz que o dado lido deverá ser armazenado na variável Dias; Δ É importante ressaltar a necessidade de se colocar um “&“ antes do nome da variável a ser lida quando se usa a função scanf();
  • 11. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Analisando um Código em C – 2 (3) Anos=Dias/365.00; Δ Temos, então, uma expressão matemática simples que atribui a Anos o valor de Dias, dividido por 365; Δ Como Anos é uma variável float, o compilador fará uma conversão automática entre os tipos das variáveis; printf ("nn%d dias equivalem a %f anos.n",Dias,Anos); Δ A segunda chamada à função printf() tem três argumentos: • A string "nn%d dias equivalem a %f anos.n“ diz à função para: o pular duas linhas; o Colocar um inteiro na tela; o Colocar a mensagem "dias equivalem a", colocar um valor float na tela, o Colocar a mensagem " anos.“ e pular outra linha. o Os outros parâmetros são as variáveis, Dias e Anos, das quais devem ser lidos os valores do inteiro e do float, respectivamente;
  • 12. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Ponto de Verificação Δ O que faz o seguinte programa? #include <stdio.h> int main() { int x; scanf("%d",&x); printf("%d",x); return(0); }
  • 13. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Definições em C Δ Diferentemente do Portugol, a Atribuição em C é feita com = soma = 10 + 10; Δ Observe que os comandos são finalizados com “;” int soma; printf(“hello world”); scanf(“%d”,&soma); printf(“A soma é: %d”,soma);
  • 14. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Declarando Variáveis Δ Na linguagem C, há 5 tipos básicos de variáveis: • Int; • float; • double; • char; • void; Δ Para se declarar uma variável, escreve-se o nome de seu tipo, salta-se um espaço em branco, em seguida o nome do seu identificador e ponto e vírgula para finalizar a declaração: • int nome_da_variável;
  • 15. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Declarando Variáveis Δ Se mais de uma variável for do mesmo tipo básico, elas podem ser declaradas juntas, apenas separadas por vírgulas. int Variavel_1, variável_2, variável 3; Δ Pode-se inicializar uma variável na sua declaração atribuindo-se a ela um valor inicial compatível com seu tipo: int Variavel_1=0; Δ Toda variável precisa ser declarada antes de ser utilizada; Δ Exemplos: • char nome[20], letra, zero=’0’; • float soma=0; • int n1, n2; • float raiz1, Total_dos_Salarios; • char nome_de_familia[30]=“Menezes”; • int idade, cont=0;
  • 16. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Operadores Δ Os operadores aritméticos básicos são: Δ + (adição); Δ - (subtração); Δ *(multiplicação); Δ / (quociente da divisão real); Δ ++( adiciona 1); Δ --(subtrai 1). Δ Alguns operadores aritméticos mais avançados são: Δ % (resto da divisão inteira); Δ /(quociente da divisão inteira); Δ sqrt( )(raiz quadrada); Δ abs( )(valor absoluto). Δ Os operadores relacionais são: Δ > (maior que); Δ >= (maior ou igual a); Δ < (menor que); Δ <= (menor ou igual a); Δ == (igual a); Δ != (diferente de). Δ Os operadores lógicos são: Δ && (e/AND – conjunção); Δ || (ou/OR – disjunção); Δ ! (operador não – negação);
  • 17. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Caracteres (char) Δ Os caracteres são um tipo de dado: o char; Δ O C trata os caracteres ('a', 'b', 'x', etc ...) como sendo variáveis de um byte (8 bits); Δ Um bit é a menor unidade de armazenamento de informações em um computador; Δ Também podemos usar um char para armazenar valores numéricos inteiros, além de usá-lo para armazenar caracteres de texto; Δ Para indicar um caractere de texto usamos apóstrofes (aspas simples);
  • 18. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Δ Caracteres (char); #include <stdio.h> int main () { char Ch; Ch='D'; printf ("%c",Ch); return(0); } Δ No programa acima, %c indica que printf() deve colocar um caractere na tela.
  • 19. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tabela Ascii Δ A Tabela ASCII (American Standard Code for Information Interchange) é usada pela maior parte da indústria de computadores para a troca de informações. Δ Cada caractere é representado por um código de 8 bits (um byte). Δ 0 – 31: Caracteres de Controle (não imprimíveis); Δ 32 – 127: Tabela Ascii Padrão; Δ 128 – 255: Tabela Ascii Estendida (acentos e especiais); Δ Tabela ascii
  • 20. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Strings (char []) Δ No C, uma string é um vetor de caracteres terminado com um caractere nulo; Δ O caractere nulo é um caractere com valor inteiro igual a zero (código ASCII igual a 0); Δ O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '0'; Δ Para declarar uma string, podemos usar o seguinte Δ formato geral: char nome_da_string[tamanho]; Δ Isto declara um vetor de caracteres (uma string) com número de posições igual a tamanho. Δ Como temos que reservar um caractere para ser o terminador nulo, temos que declarar o comprimento da string como sendo, no mínimo, um caractere maior que a maior string que pretendemos armazenar.
  • 21. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Strings (char []) Δ Vamos supor que declaremos uma string de 7 posições e coloquemos a palavra “Joao” nela. Teremos: char palavra[7]=“Joao”; Δ No caso acima, as duas células não usadas têm valores indeterminados. Δ Isto acontece porque o C não inicializa variáveis, cabendo ao programador esta tarefa; Δ Portanto as únicas células que são inicializadas são as que contêm os caracteres 'J', 'o', 'a', 'o' e '0' . palavra J o a o 0
  • 22. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Δ Strings (char []) #include <stdio.h> int main () { char palavra[7]="Joao"; //definindo uma string de tamanho 7 char string[10]; //definindo uma string de tamanho 10 printf ("Digite uma string: ");//Escreve na tela scanf("%s",&string); //Lê a entrada de dados do usuário printf ("nnA palavra eh %s",palavra);//imprime a variável palavra printf ("nnVoce digitou %s",string); //imprime a string digitada return(0); }
  • 23. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Δ Como as strings são vetores de caracteres, para se acessar um determinado caractere de uma string, basta "indexarmos", ou seja, usarmos um índice para acessarmos o caractere desejado dentro da string; • Suponha uma string chamada str. • Podemos acessar a segunda letra de str da seguinte forma: str[1] = 'a'; Δ Na linguagem C, o índice começa em zero! Δ Assim, a primeira letra da string sempre estará na posição 0. Δ A segunda letra sempre estará na posição 1 e assim sucessivamente. char palavra[7]=“Joao”; palavra J o a o 0 (0) (1) (2) (3) (4) (5) (6)
  • 24. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Δ Segue um exemplo que imprimirá a segunda letra da string "Joao". Em seguida, ele mudará esta letra e apresentará a string no final: #include <stdio.h> int main() { char str[10] = "Joao";//define a string printf("nnString: %s", str);//imprime a string printf("nSegunda letra: %c", str[1]);//imprime a 2ª letra da string str[1] = 'U';//muda a 2ª letra da string; printf("nAgora a segunda letra eh: %c", str[1]); //imprime a 2ª letra da string após a modificação printf("nnString resultante: %s", str);//imprime a string modificada return(0); }
  • 25. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Introdução Básica as Entradas e Saídas Δ Podemos, ainda, usar o char para imprimir um determinado caractere em seu valor decimal da tabela Ascii: #include <stdio.h> int main() { char str[10] = "Joao";//define a string printf("nSegunda letra: %d", str[1]);//imprime a 2ª letra em seu valor na tabela ascii str[1] = 'U';//muda a 2ª letra da string; printf("nAgora a segunda letra eh: %c", str[1]); //imprime a 2ª letra da string após a modificação printf("nnString resultante: %s", str);//imprime a string modificada return(0); }
  • 26. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Saída de Dados – printf() printf (string_de_controle,lista_de_argumentos); Δ A string de controle, apresenta uma descrição de tudo que a função vai colocar na tela; Δ A string de controle mostra não apenas os caracteres que devem ser colocados na tela, mas também quais as variáveis e suas respectivas posições. Δ Isto é feito usando-se os códigos de controle, que usam a notação %. Δ Na string de controle indicamos quais, de qual tipo e em que posição estão as variáveis a serem apresentadas.
  • 27. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Saída de Dados – printf() printf (string_de_controle,lista_de_argumentos); Δ Alguns códigos de Controle:
  • 28. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Saída de Dados – printf() printf (string_de_controle,lista_de_argumentos); Δ Alguns exemplos de printf: Δ printf ("Teste %% %%") • Teste % % Δ printf ("%f",40.345) • 40.345 Δ printf ("Um caractere %c e um inteiro %d",'D',120) • Um caractere D e um inteiro 120 Δ printf ("%s eh um exemplo","Este") • Este eh um exemplo Δ printf ("%s%d%%","Juros de ",10) • Juros de 10%
  • 29. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Entrada de Dados – scanf() scanf (string-de-controle,lista-de-argumentos); Δ Usando a função scanf(), podemos pedir dados ao usuário. Δ Já vimos vários exemplos ao longo dessa aula; Δ Devemos ficar atentos a fim de colocar o mesmo número de argumentos que o de códigos de controle na string de controle; Δ Outra coisa importante é colocarmos o & antes das variáveis da lista de argumentos! Δ Exemplos: scanf("%s",&string); scanf(“%d”,&numero); scanf(“%d%s”,&numero,&string);
  • 30. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Ponto de Verificação Δ Escreva um programa que leia um caractere digitado pelo usuário, imprima o caractere digitado e o código ASCII correspondente a este caractere; Δ Escreva um programa que leia duas strings e as coloque na tela. Imprima também a segunda letra de cada string. Δ Escreva um programa que peça ao usuário para digitar a base e a altura de um retângulo. Em seguida, imprima a área desse retângulo na tela (área=base*altura); Δ Faça um algoritmo que Leia o nome e sobrenome de um usuário em variáveis separadas e, em seguida, apresente, NA MESMA LINHA, nome e sobrenome;
  • 31. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if Δ O comando if é equivalente ao se...faça(do porgugol); if (condição){ //bloco de comandos } Δ A condição do comando if é uma expressão que será avaliada; Δ Se o resultado for zero a declaração não será executada (condição FALSA); • Se o resultado for qualquer coisa diferente de zero a declaração será executada (condição VERDADEIRA); Δ A declaração pode ser um bloco de código ou apenas um comando. Δ Note que, no caso da declaração ser um bloco de código, não é necessário (e nem permitido) o uso do ; no final do bloco.
  • 32. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if #include <stdio.h> int main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) //verificamos se num>10 printf ("nnO numero e maior que 10"); if (num==10) //verificamos se num=10 (observe que é usado o ==) { printf ("nnVoce acertou!n"); printf ("O numero e igual a 10."); } if (num<10) //verificamos se num<10 printf ("nnO numero e menor que 10"); return (0); }
  • 33. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if Δ Repare que, quando queremos testar igualdades usamos o operador “==“ e não “=”, Δ Isto porque o operador “=” representa apenas uma atribuição. Δ Pode parecer estranho á primeira vista, mas se escrevêssemos: if (num=10) ... /* Isto está errado! */ Δ O compilador iria atribuir o valor 10 à variável num e a expressão num=10 iria retornar 10, fazendo com que o nosso valor de num fosse modificado e forçando a declaração a ser executada sempre; Δ Este problema gera erros frequentes entre iniciantes e, portanto, muita atenção deve ser tomada! Δ Os operadores de comparação são: == (igual), != (diferente de),> (maior que), < (menor que), >= (maior ou igual), <= (menor ou igual).
  • 34. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if – EVITE ERROS! #include <stdio.h> int main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) //verificamos se num>10 { printf ("nnO numero e maior que 10"); } if (num==10) //verificamos se num=10 (observe que é usado o ==) { printf ("nnVoce acertou!n"); printf ("O numero e igual a 10."); } if (num<10) //verificamos se num<10 { printf ("nnO numero e menor que 10"); } return (0); }
  • 35. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Ponto de Verificação Δ Faça um programa em C que peça ao usuário que insira dois valores inteiros. Faça a soma desses dois valores e armazene em outra variável. Em seguida, escreva na tela se a soma é maior, menor ou igual a 50, escreva os números que o usuário digitou e escreva o resultado da soma;
  • 36. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Ponto de Verificação #include <stdio.h> int main(){ int a,b,soma; printf("Escreva o 1o numero: "); scanf("%d",&a); printf("nEscreva o 2o numero: "); scanf("%d",&b); soma=a+b; if(soma>50){ printf("nO numero eh maior que 50"); } if(soma==50){ printf("nO numero eh igual a 50"); } if(soma<50){ printf("nO numero eh menor que 50"); } printf("nA soma dos valores eh: %d",soma); printf("nOs numeros digitados foram: %d e %d",a,b); return(0); }
  • 37. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if/else Δ Análogo ao comando se...então/senão; if (condição){ //Bloco de comandos 1 } else { //Bloco de comandos 2 } Δ A expressão da condição será avaliada. Se ela for diferente de zero o bloco de comandos 1 será executado; Δ Se for zero, o bloco de comandos 2 será executado.
  • 38. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo – if/else #include <stdio.h> int main(){ int a,b,soma; printf("Escreva o 1o numero: "); scanf("%d",&a); printf("nEscreva o 2o numero: "); scanf("%d",&b); soma=a+b; if(soma>50){ printf("nO numero eh maior que 50"); }else if(soma==50){ printf("nO numero eh igual a 50"); }else{ printf("nO numero eh menor que 50"); } printf("nA soma dos valores eh: %d",soma); printf("nOs numeros digitados foram: %d e %d",a,b); return(0); }
  • 39. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Ponto de Verificação Δ Faça um programa em C que leia dois números A e B e imprima o maior deles; Δ Faça um programa em C que leia 3 números inteiros distintos e escreva o menor deles. Δ Faça um programa em C que leia quatro números (Opção , Num1 , Num2 e Num3) e mostre o valor de Num1 se Opção for igual a 2; o valor de Num2 se Opção for igual a 3; e o valor de Num3 se Opção for igual a 4. Se o usuário digitar qualquer valor diferente, deve ser apresentada a mensagem de opção Inválida;
  • 40. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo - switch Δ Como já vimos, em algumas situações, temos várias opções a escolher. Como fazer isso de modo mais rápido? Switch(expressão) Δ Comando de seleção múltipla que testa sucessivamente o valor de uma expressão contra uma lista de valores do tipo inteiro ou de caracteres. Δ Quando o valor coincide, os comandos associados àquele valor são executados. switch (expressão){ case valor1: <comandos_1>; break; case valor2: <comandos_2>; break; ...case valorn: <comandos_n>; break; default: <comandos_default>; }
  • 41. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Controle de Fluxo - switch Δ A expressão deve resultar num valor inteiro do tipo int ou char. Δ Compara-se esse resultado com o valor1 até valorn: • se for encontrada alguma equivalência, o programa passa a executar os comandos a partir deste ponto, até encontrar uma instrução break; • se nenhuma equivalência for encontrada, os comandos relativos a default são executados; ocaso não haja a opção default, nenhum comando é executado; • caso a instrução break não seja encontrada, todos os comandos vão sendo testados até se chegar ao final do comando “switch”;
  • 42. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO case 4: printf("Quarta-feira"); break; case 5: printf("Quinta-feira"); break; case 6: printf("Sexta-feira"); break; case 7: printf("Sábado"); break; default: printf("Você digitou um dia inválido!"); } return(0); } #include<stdio.h> int main(){ int numero; printf("Insira um numero(1-7): n"); scanf("%d",&numero); switch(numero){ case 1: printf("Domingo"); break; case 2: printf("Segunda-feira"); break; case 3: printf("Terça-feira"); break;
  • 43. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – for Δ O loop (laço) for é usado para repetir um comando, ou bloco de comandos, um determinado número vezes, de maneira que se possa ter um bom controle sobre o loop; Δ Apresenta um mecanismo de contagem automática, dentro de um intervalo definido pelo programador; Δ Análogo ao de...ate...passo...faca; Δ Sua forma geral é: for(inicialização;condição;incremento ou decremento){ //bloco de comandos }
  • 44. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – for Δ As expressões inicial e incremento ou decremento são, em geral, atribuições à variável de controle e condição é uma expressão relacional que envolve a mesma variável de controle. Δ A semântica do comando “for” é: • A expressão inicial é avaliada, consistindo geralmente na inicialização de uma variável de controle; • Em seguida, é avaliada a condição: ose a condição for verdadeira, o <bloco de comandos> é executado e, ao chegar ao delimitador } ou final do comando “for”, automaticamente se incrementa ou se decrementa a variável de controle e se retorna à avaliação da condição; • Quando a condição ficar falsa, ou seja, o incremento/decremento fizer a variável de controle chegar no limite da condição, o comando de repetição é finalizado;
  • 45. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – for Δ Exemplo: Façamos um programa que imprima os caracteres da tabela ASCII padrão (entre o número 32 e o 127) e sua representação decimal; #include <stdio.h> int main(void) { int i; for (i = 32; i <= 126; i++) { printf("%c [%d]n", i, i); } return 0; }
  • 46. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Para Casa 1. Desenvolva, em C, um algoritmo que efetue o cálculo da média de quilômetros por litro gasta em uma viagem. Para obter o cálculo, o usuário deve fornecer o tempo gasto (variável TEMPO), a velocidade média (variável VELOCIDADE) durante a viagem e o total de litros de combustível gastos (variável LITROS). Desta forma, será possível obter a distância percorrida com a fórmula 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴 = 𝑇𝐸𝑀𝑃𝑂 𝑥 𝑉𝐸𝐿𝑂𝐶𝐼𝐷𝐴𝐷𝐸. A partir do valor da distância, basta calcular a média de quilômetros por litro utilizada na viagem com a fórmula: 𝑀É𝐷𝐼𝐴 = 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴/𝐿𝐼𝑇𝑅𝑂𝑆. O programa deve apresentar, após todos os cálculos, os valores da velocidade média, tempo gasto na viagem, a distância percorrida, a quantidade de litros utilizada na viagem e a média de quilômetros por litro. Considere que o usuário digitará APENAS números positivos e diferentes de zero; 2. Elabore, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), dez valores numéricos reais e apresente no final a soma e a média dos valores lidos; 3. Desenvolva, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), os valores de três notas escolares bimestrais de um aluno, representadas pelas variáveis N1, N2 e N3. Calcule a média aritmética (variável M01) desse aluno e apresente a mensagem "Aprovado”, se a média obtida for maior ou igual a 7; caso contrário, o programa deve solicitar a Quarta nota (nota de exame, representada pela variável NE) do aluno e calcular uma nova média aritmética (variável M02) entre a nota de exame e a primeira média aritmética. Se o valor da nova média for maior ou igual a 6, apresentar a mensagem "Aprovado em exame”; caso contrário, apresentar a mensagem "Reprovado”. Informar também, após a apresentação das mensagens, o valor da média obtida pelo aluno
  • 47. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Para Casa 4. Elabore, em pseudocódigo, de um programa que efetue o cálculo da fatorial de um número inserido pelo usuário. Em seguida, imprima na tela o valor calculado. Caso o usuário insira um número negativo, indique que não é um número aceitável. Se o usuário inserir o número 0, indique que o fatorial é 1. Relembrando: Fatorial de 5: 5! = 5*4*3*2*1; Fatorial de 0: 0! = 1; Fatorial de -2: -2! = Não existe;
  • 48. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Para Casa 5. Faça um algoritmo em C que leia 100 números inteiros e escreva, na tela, a média, o menor número e o maior número (não é necessário usar VETORES!); 6. Faça um algoritmo que: • Obtenha o valor para a variável HT (horas trabalhadas no mês); • Obtenha o valor para a variável VH (valor hora trabalhada): • Obtenha o valor para a variável PD (percentual de desconto); • Calcule o salário bruto => SB = HT * VH; • Calcule o total de desconto => TD = (PD/100)*SB; • Calcule o salário líquido => SL = SB – TD; • Apresente os valores de: Horas trabalhadas, Salário Bruto, Desconto, Salário Liquido.
  • 49. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Para Casa 7. A conversão de graus Farenheit para centígrados é obtida por 𝐶 = 5(𝐹−32) 9 . Faça um programa em C que calcule e escreva uma tabela de centígrados em função de graus farenheit, que variam de 50 a 150 de 1 em 1. 8. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isso, forneceu o sexo do entrevistado e sua resposta (sim ou não). Sabendo-se que foram entrevistados 2.000 pessoas, fazer um programa que calcule e escreva: a) o número de pessoas que responderam sim b) o número de pessoas que responderam não c) a porcentagem de pessoas do sexo feminino que responderam sim d) a porcentagem de pessoas do sexo masculino que responderam não
  • 50. DÚVIDAS? Contatos: E-mail: enio.filho@alfa.br Skype: eniopvf Twitter: eniopvf Bibliografia: • MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN 857194718; • FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN 9788576050247;