Linguagem C
Introdução: sintaxe, entrada e saída e
estruturas de decisão
Prof. Marcelo R. Zorzan Prof. Moacir P. Ponti Jr
Agenda
Linguagem C – Introdução:
Caracteres válidos; Funções; Comentários; Comando de atribuição; Declaração de variáveis; Revisão;
Exercícios.
Normas Gerais: Caracteres Válidos
Um programa-fonte em C é um texto não
formatado escrito em um editor de textos
usando um o conjunto padrão de caracteres ASCII.
Abaixo estão os caracteres utilizados em C:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0
A Função
main()
A função
main()
é o ponto de início da
execução do programa e deve existir em
algum lugar dentro do seu programa.
Exemplo:
int main(void) {
Declaração de Variáveis
char, ...
as variáveis devem ser declaradas no
inicio de cada bloco de programa.
Tipos de Variáveis:
char (literal/string) int (inteiro)
float (real de precisão simples) double (real de precisão dupla) e outras que serão vistas.
Declaração de Variáveis
A declaração de uma variável consiste em
um
tipo
e um
identificador
.
O tipo determina o espaço de memória que
deverá ser alocado;
O identificador permitirá que ela seja
referenciada no restante do programa.
Ex.:
Declaração de Variáveis
Identificadores:
Todo identificador deve iniciar-se com letra
(maiúscula ou minúscula) e ser composto exclusivamente por letras, dígitos e sublinhas;
Faz distinção de letras maiúsculas e minúsculas; Não podem ser utilizadas palavras reservadas; Ex.:
char tecla_x, opcao; int x1, y2, z3;
Tipos de Variáveis do padrão ANSI
0 a 4.294.967.295 4 bytes
unsigned int
O mesmo que int. 4 bytes signed int -32.767 a 32.767 2 bytes short int 0 a 65.535 2 bytes
unsigned short int
- a + 2.147.483.647 4 bytes int -127 a 127 1 byte signed char 0 a 255 1 byte unsigned char -127 a 127 1 byte char Escala Espaço Tipo
Tipos de Variáveis do padrão ANSI
1.8 e-19 a 1.8 e+19 8 bytes double 1.2 e-24 a 1.2 e+24 10 bytes long double 2.4e-09 a 2.4e+09 4 bytes float 0 a 4.294.967.295 4 bytesunsigned long int
O mesmo que long int. 4 bytes
signed long int
-2.147.483.647 a 2.147.483.647 4 bytes long int Escala Espaço Tipo
Strings em C
Uma string em C é um vetor de caracteres
terminando com um caracter nulo;
Este caractere nulo é o \0, usado para
descrever o final da string;
Exemplo:
char string1[8] = "Teste";
e e s t \0 T 4 1 2 3 5 6 7 0
A função printf() é uma das funções de E/S
que podem ser usadas em C. Os parênteses significam que realmente estamos utilizando uma função. Argumentos são as informações existentes entre os parênteses.
Sintaxe:
printf("Expr. de controle", valores);
Exemplo:
int main(void) {
printf("Este é um argumento!");
Outro exemplo:
int main(void) {
printf("Este e’ o numero dois: %d", 2); }
O programa imprimirá na tela:
Este e’ o número dois: 2
Imprimindo cadeia de caracteres:
int main(void) {
printf("Dia %d de %s e’\nferiado!", 7, "setembro"); }
O programa imprimirá na tela:
Dia 7 de setembro e’ feriado!
Especificadores de Formato:
um número real de precisão simples ou dupla.
%f, %lf
um número inteiro longo em base decimal.
%ld
um número inteiro em base decimal sem sinal.
%u
um número inteiro em octal, decimal ou Hexadecimal.
%o, %d, %x
um único caracter.
%c
A Função
printf()
Caracteres de Controle:
Os caracteres de controle utilizados com a função
printf( ) são:
exibe aspas simples.
\’
o cursor retrocede para o início da linha.
\r
o cursor avança para próxima marca de tabulação.
\t
exibe aspas duplas.
\”
o cursor avança para uma nova linha.
\n
Alimentação de formulário (FF).
\f
o cursor retrocede uma coluna.
\b
soa o alarme do microcomputador (beep)
Comando de Atribuição
=
O comando de atribuição é utilizado para
atribuir valores ou operações a variáveis,
sendo representado por
=
(sinal de
igualdade)
Ex.:
cep = 19200000; sexo = ‘M’;
Variáveis de ponto flutuante
Corresponde aos números reais (aproximadamente)
Exemplo:
int main(void)
{
float tempo = 27.24566;
printf("O tempo e': %f", tempo);
printf("\nO tempo e': %3.2f", tempo); }
Resultado:
A Função
scanf()
scanf()
A função scanf() permite que um valor seja lido do
teclado e armazenado numa variável;
Sua sintaxe consiste de uma cadeia de formatação
seguida de uma lista de argumentos, indicando o endereço de uma variável:
scanf("formatação", arg1, arg2,..., argn);
Ex.:
int idade; char sexo;
O caracter & indica o endereço da variável na
A Função
scanf()
– Exemplo
#include <stdio.h> int main(void) { int nr; char palavra[5];printf("Entre com um numero:");
scanf("%d", &nr);
printf("Entre com uma palavra de 5 letras:");
scanf("%s", &palavra);
printf("Numero = %d \t Palavra = %s\n", nr, palavra);
O operador de endereço
&
Um endereço é uma posição de memória:
Um endereço é o nome que o computador utiliza para
identificar a variável;
Toda variável ocupa uma certa localização na
memória; Exemplo: int main(void) { int num; num = 2;
printf(“Valor=%d, endereco=%u”, num, &num);
O token num devolve o valor 2.
A expressão &num devolve o endereço do primeiro byte onde num está armazenado.
Operadores Matemáticos
Obtém o resto da divisão de x por y. x % y % incrementa o conteúdo de x. x++ ++ decrementa o conteúdo de x. x
--Obtém o quociente da divisão de x por y.
x / y
/
Multiplica o conteúdo de x pelo conteúdo de y.
x * y
*
Subtrai o conteúdo de y do conteúdo de x. x – y -Soma o conteúdo de x ao de y. x + y + Comentário Exemplo Operador
Operadores de Incremento (
++
) e
Decremento (
--
)
O operador (++) incrementa de um seu operando e (--)
decrementa de um.
Analisando os seguintes casos:
k = 3*n++;
k = 3*++n;
PRIMEIRO n é multiplicado por 3; DEPOIS o resultado é atribuído a k; FINALMENTE n é incrementado de 1.
PRIMEIRO n é incrementado de 1; DEPOIS n é multiplicado por 3;
Operadores de Incremento (
++
) e Decremento
(
--
)
Exemplo: int main(void) { int num=0;printf(“%d e’ um bom numero\n”, num); printf(“%d e’ um bom numero\n”, num++); printf(“%d e’ um bom numero\n”, num); return 0;
}
Resultado:
0 e’ um bom numero 0 e’ um bom numero 1 e’ um bom numero
Operadores de Incremento (
++
) e Decremento
(
--
)
Exemplo anterior modificado:
int main(void) {
int num=0;
printf(“%d e’ um bom numero\n”, num); printf(“%d e’ um bom numero\n”, ++num); printf(“%d e’ um bom numero\n”, num); return 0;
}
Resultado:
0 e’ um bom numero 1 e’ um bom numero
Operadores Matemáticos de
Atribuição
equivale a x = x % y. x %= y %= equivale a x = x / y. x /= y /= equivale a x = x * y. x *= y *= equivale a x = x - y. x –= y -= equivale a x = x + y. x += y += Comentário Exemplo OperadorEstruturas Condicionais
Estrutura Condicional – if Operadores Relacionais Exemplo Exercício Operadores Lógicos Operador Lógico OU (||) – exemplo Operador Lógico E (&&) – exemplo
Estrutura Condicional - switch
Switch – break Exercício;
Operador condicional ternário ?: Revisão
Estrutura Condicional -
if
A estrutura
if
é usada quando queremos que
algo seja executado dependendo de uma
condição.
Exemplo: num caixa automático de banco, um
cliente tenta sacar dinheiro
Tentativa de saque Saldo <= 0Se Imprimir(“Saldo Insuficiente”) Imprimir(“Saldo Positivo”) Falso Verdadeiro
Estrutura Condicional -
if
/* verifica se o saldo
e menor ou igual a zero */ if (saldo <= 0)
{
printf("Saldo Insuficiente"); //avisa o cliente }
else {
printf("Saldo Positivo"); }
Operadores Relacionais
São operadores utilizados para comparação:
Menor ou igual <= Maior ou igual >= Menor < Maior > Não igualdade != Igualdade == Descrição Operador
Operadores Relacionais – Exemplo
#include <stdio.h> int main(void)
{
int idade1;
printf("Entre com a idade");
scanf("%d", &idade1); if (idade1 >= 18)
{
printf("Maior de dezoito anos"); }
Operadores Lógicos
Usados para combinar afirmativas,
principalmente ao testar condições.
E && OU || Descrição Operador
Operador Lógico OU (||) - exemplo
/* verifica se um aluno foi reprovado,dependendo da média e do número de faltas */
/* se media for menor que 6 OU faltas for maior que 20 */
if ( (media < 6) || (faltas > 20) ) {
printf("Aluno Reprovado"); }
else {
printf("Aluno Aprovado"); }
Operador Lógico E (&&) - exemplo
/* exibe o conceito de um aluno aprovado (A,B ou C), dependendo da media obtida */
// se media for maior ou igual a 8,5
if (media >= 8.5) {
printf("Conceito A");
}
// se media for maior ou igual a 7 E menor que 8.5
if ( (media >= 7) && (media < 8.5) )
{
printf("Conceito B");
}
// se media for maior ou igual a 6 E menor que 7
if ( (media >= 6) && (media < 7) )
{
Estrutura Condicional -
switch
A estrutura switch é usada quando queremos
que algo seja executado dependendo de
diversas condições existentes.
Dependendo do valor ou faixa de valor de
uma variável, uma operação diferente é
executada.
Estrutura Condicional -
switch
Receba(N_Mes) caso N_Mes == 3 Imprimir(“Março”) caso N_Mes == 4 caso N_Mes == 5 Imprimir(“Abril”) Imprimir(“Maio”)Estrutura Condicional -
switch
/* calcula o valor do imposto conforme o nivelprofissional (niveis de 1 a 4), ou 0, caso contrario */
switch (nivel) { case 1: imposto = 3; break; case 2: imposto = 7; break; case 3: imposto = 11; break; case 4: imposto = 19; break;
Switch -
break
O comando
break
faz com que o switch seja
interrompido.
Este comando não é obrigatório, mas caso
não seja inserido no final de cada
case
, após
a execução do bloco o programa continuará
executando, indo para o próximo
case
.
Exercício
Escreva um programa no qual o usuário entre
com o nome e a idade de um atleta juvenil
Imprimir na tela a categoria do atleta, sendo que:
Idade de 10 anos – categoria alfa Idade de 11 anos – categoria beta Idade de 12 anos – categoria gama
Caso a idade entrada seja menor que 10 ou
maior que 12 anos, mostrar mensagem: idade inválida
Operador condicional ternário
?:
Chamado de operador condicional, é
utilizado
como
uma
instrução
if
compacta.
Forma geral:
Condição ? Expressão_Verdade : Expressão_Falsa
Exemplo:
Revisão (1/2)
As principais estruturas de decisão C são if,
if-else, switch e operador condicional.
O comando if oferece um meio de escolha entre
executar ou não um bloco de instruções. O comando if-else oferece um meio de executar um ou outro bloco de instruções.
Operadores lógicos geralmente são aplicados a
expressões relacionais como operandos;
Expressões lógicas são avaliadas da esquerda
para a direita e a avaliação termina logo que é conhecida a veracidade ou falsidade da
Revisão (2/2)
O comando switch oferece um meio de escolher uma
entre muitas opções. A expressão do comando switch deve ter um valor inteiro ou char constante. As expressões de cada caso devem ter um valor inteiro ou char constante e devem ser todas diferentes;
Num comando switch o controle do programa pula
para o caso em que a expressão for igual à expressão
do switch ou, se não houver nenhum caso igual, para o
default. Um caso default é opcional;
O comando break provoca uma saída imediata da
construção switch;
O operador condicional opera sobre três expressões. A
primeira é avaliada e, se verdadeira, a expressão toda assume o valor da segunda expressão; caso contrário, assume o valor da terceira expressão.