Laboratório de Programação II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br
Na aula passada vimos...
Na aula passada vimos... 01 Introdução à linguagem C;
Na aula de hoje veremos...
Na aula de hoje veremos... 02 Variáveis, constantes, operadores e expressões;
Na aula de hoje veremos... 02 Variáveis, constantes, operadores e expressões; OBS: Não se esqueça de criar o diretório da aula-02 no projeto de fontes. ;)
Variáveis, constantes, operadores e expressões
Variáveis, constantes, operadores e expressões Introdução Básica às Entradas e Saídas
Introdução Básicas às Entradas e Saídas - Caracteres Os caracteres são um tipo de dado: o char A linguagem 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. Os inteiros (ints) têm um número maior de bytes. Dependendo da implementação do compilador, eles podem ter 2 bytes (16 bits) ou 4 bytes (32 bits). Na linguagem C, também podemos usar um char para armazenar valores numéricos inteiros, além de usá-lo para armazenar caracteres de texto.
Introdução Básicas às Entradas e Saídas Crie o programa11.c
Introdução Básicas às Entradas e Saídas Digite o seguinte código:
Introdução Básicas às Entradas e Saídas Digite o seguinte código:
Introdução Básicas às Entradas e Saídas Depois de compilado e executado...
Introdução Básicas às Entradas e Saídas Depois de compilado e executado... Por quê essa saída?
Introdução Básicas às Entradas e Saídas Depois de compilado e executado... Por quê essa saída? Tabela ASCII
Introdução Básicas às Entradas e Saídas
Introdução Básicas às Entradas e Saídas Crie o programa12.c
Introdução Básicas às Entradas e Saídas Digite o seguinte código:
Introdução Básicas às Entradas e Saídas Compilado e executado...
Strings
Strings Na linguagem C não existe o tipo de dado string. 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 conversão de barra invertida do C como sendo '\0'. OBS: Iremos aprender sobre vetores em aula futura, mas precisamos entender um básico para poder trabalhar com strings.
Strings Para declarar uma string, podemos usar o seguinte formado geral: char nome_da_string[tamanho];
Strings Para declarar uma string, podemos usar o seguinte formado geral: char nome_da_string[tamanho]; Exemplo: char nome[11];
Strings Para declarar uma string, podemos usar o seguinte formado geral: char nome_da_string[tamanho]; Exemplo: char nome[11]; Isso declara um vetor de caracteres (uma string) com número de posições igual a tamanho. OBS: 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 string que pretendemos armazenar.
Strings Para declarar uma string, podemos usar o seguinte formado geral: char nome_da_string[tamanho]; Exemplo: char nome[11]; Isso declara um vetor de caracteres (uma string) com número de posições igual a tamanho. OBS: 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 string que pretendemos armazenar. D i e m e s l e n o \0
Strings Para declarar uma string, podemos usar o seguinte formado geral: char nome_da_string[tamanho]; Exemplo: char nome[11]; Isso declara um vetor de caracteres (uma string) com número de posições igual a tamanho. OBS: 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 string que pretendemos armazenar. D i e m e s l e Todo vetor inicia na posição 0 e vai até n -1 n o \0
Strings Crie o programa13.c
Strings Digite o seguinte código:
Strings Compilando e executando...
Strings Como as strings são vetores de caracteres, podemos acessar um determinado caractere da mesma de forma indexada.
Strings Crie o programa14.c
Strings Digite o seguinte código:
Strings Compilado e executado...
Strings Da mesma forma que podemos acessar o valor de qualquer posição de um vetor de caracteres (string) podemos também alterar seu valor.
Strings Crie o programa16.c
Strings Digite o seguinte código:
Strings Compilado e executado...
Entendendo melhor a função printf()
Entendendo melhor a função printf() A função printf() tem a seguinte forma geral: printf(string_de_controle, lista_de_argumentos); Temos, na string de controle, uma descrição de tudo que a função irá 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ávei e suas respectivas posições. Isso é feito usando-se os códigos de controle, que usam a notação %.
Entendendo melhor a função printf() printf(string_de_controle, lista_de_argumentos); Na string de controle indicamos quais, de qual tipo e em que posição estão as variáveis a serem apresentadas. É muito importante que, para cada código de controle, tenhamos um argumento na lista de argumentos. Alguns destes códigos:
Entendendo melhor a função scanf()
Entendendo melhor a função scanf() O formato geral da função scanf() é: scanf(string_de_controle, lista_de_argumentos); Usamos a função scanf() para pedir dados ao usuário. OBS: Devemos lembrar de colocar o sinal de & antes das variáveis da lista de argumentos.
Introdução aos Controle de Fluxo
Introdução aos Controle de Fluxo Os comandos de controle de fluxo são aqueles que permitem ao programador alterar a sequência de execução do programa.
Introdução aos Controle de Fluxo - if
Introdução aos Controle de Fluxo - if O comando if representa uma tomada de decisão do tipo: "SE isto ENTÃO aquilo" Sua forma geral é: if(condição) { declaração; } A condição do comando if é uma expressão que será avaliada. Se o resultado for zero, a declaração NÂO será executada. Se o resultado for qualquer coisa diferente de zero, a declaração SERÁ executada. Ou seja, 0 significa false (falso); //não executa Qualquer coisa > 0 significa true (verdadeiro); //executa
Introdução aos Controle de Fluxo - if O comando if representa uma tomada de decisão do tipo: "SE isto ENTÃO aquilo" Sua forma geral é: if(condição) { declaração; } A declaração pode ser um bloco de código ou apenas um comando. Repare que o ponto e vírgula só vai nos comandos da declaração. O comando if inicia e termina com chaves.
Introdução aos Controle de Fluxo - if Crie o programa16.c
Introdução aos Controle de Fluxo - if Digite o seguinte código:
Introdução aos Controle de Fluxo - if Compilado e executado...
Introdução aos Controle de Fluxo - if Entendendo o código...
Introdução aos Controle de Fluxo - if Na linha 8, a expressão 'numero > 666' é avaliada e retorna um valor diferente de zero se verdadeira ou zero se falsa. A linha 9 só é executada se a expressão for verdadeira.
Introdução aos Controle de Fluxo - if O mesmo ocorre na linha 12, onde a expressão 'numero == 666' é avaliada. E também na linha 16 onde a expressão 'numero < 666' é avaliada.
Introdução aos Controle de Fluxo - if É importante lembrar que a expressão que será avaliada deve retornar true ou false. No caso do C, 0 é false e > que 0 é true.
Introdução aos Controle de Fluxo - if É importante lembrar que a expressão que será avaliada deve retornar true ou false. No caso do C, 0 é false e > que 0 é true. if(num = 10) //errado
Introdução aos Controle de Fluxo - if É importante lembrar que a expressão que será avaliada deve retornar true ou false. No caso do C, 0 é false e > que 0 é true. if(num = 10) //errado if(1) //válido (true) if(0) //válido (false)
Introdução aos Controle de Fluxo - if Crie o programa17.c
Introdução aos Controle de Fluxo - if Digite o seguinte código:
Introdução aos Controle de Fluxo - if Compilando e rodando...
Introdução aos Controle de Fluxo - if Geralmente, as expressões que são avaliadas em um if são do tipo 'comparação' e para isso utilizamos os respectivos operadores: == (igual);!= (diferente de); > (maior que); < (menor que); >= (maior ou igual) <= (menor ou igual)
Introdução aos Controle de Fluxo - else
Introdução aos Controle de Fluxo - else Quase sempre a instrução if necessita de um complemento para que independente do resultado da expressão avaliada o programa possa executar alguma ação. Esse complemento do if é o else. Ele funcionam em conjunto da seguinte forma: if(expressão){ declaração se for true; }else{ declaração se for false; } Dessa forma, a expressão sendo verdadeira irá fazer uma coisa e sendo falsa irá fazer outra.
Introdução aos Controle de Fluxo - else Crie o programa18.c
Introdução aos Controle de Fluxo - else Digite o seguinte código:
Introdução aos Controle de Fluxo - else Compilando e executando...
Introdução aos Controle de Fluxo - if/else encadeados
Introdução aos Controle de Fluxo - if/else encadeados Durante a programação de sistemas, em determinados casos, temos que tratar mais do que somente 2 valores. Neste caso podemos utilizar if/else encadeados, conforme: if(expressão_a){ declaração_a true; }else if(expressão_b){ declaração_b true; }else if(expressão_n){ declaração_n true; }else{ declaração_se nada der certo; }
Introdução aos Controle de Fluxo - if/else encadeados Crie o programa19.c
Introdução aos Controle de Fluxo - if/else encadeados Digite o seguinte código:
Introdução aos Controle de Fluxo - if/else encadeados Compilado e executado...
Introdução aos Comandos de repetição
Introdução aos Comandos de repetição - for
Introdução aos Comandos de repetição - for O loop (laço) for é usado para repetir um comando, ou bloco de comandos, diversas vezes, de maneira que se possa ter um bom controle sobre o loop. Sua forma geral é: for(inicialização; condição_de_parada; forma_de_incremento){ declaração; } O for inicializa a variável somente uma vez; então verifica a condição de parada e a forma de incremento; A condição de parada é uma expressão que pode ser verdadeira ou falsa. Sendo verdadeira a declaração é executada e a variável incrementada. Novamente a condição de parada é checada e sendo verdadeira o processo continua até que a condição de parada retorne false.
Introdução aos Comandos de repetição - for Crie o programa20.c
Introdução aos Comandos de repetição - for Digite o seguinte código:
Introdução aos Comandos de repetição - for Compilando e rodando...
Introdução aos Comandos de repetição - for Entendendo o código:
Introdução aos Comandos de repetição - for O que o programa21.c faz?
Introdução aos Comandos de repetição - for O que o programa21.c faz? OBS: Com o que já estudamos, dá pra responder na lata. ;)
Introdução aos Comandos de repetição - for O programa21.c imprime o alfabeto com letras maiúsculas de forma fácil. ;)
Introdução aos Comandos de repetição - for Entendendo o código...
Palavras reservadas do C
Palavras reservadas do C Toda linguagem de programação têm palavras reservadas. As palavras reservadas não podem ser usadas em nomes de variáveis, métodos, programas e bibliotecas pois fazem parte da linguagem de programação.
Palavras reservadas do C A tabela de palavras reservadas do ANSI C é:
Palavras reservadas do C A tabela de palavras reservadas do ANSI C é: Algumas dessas palavras já utilizamos nos nossos programas. Outras ainda iremos utilizar. Algumas delas, praticamente nunca.
Nomes de variáveis
Nomes de variáveis As variáveis no C podem ter qualquer nome se quatro condições forem satisfeitas: 1 - O nome deve começar com uma letra ou sublinhado. 2 - Os caracteres subsequentes devem ser setras, números ou sublinhado. 3 - O nome da variável não pode ser igual a uma palavra reservada. 4 - O nome da variável não pode ser igual ao nome de uma função declarada pelo programador ou pelas bibliotecas do C. São aceitas variáveis com até 32 caracteres.
Nomes de variáveis Dicas quanto aos nomes de variáveis: OBS: Será também cobrado em prova. ;) - É uma prática tradicional do C, usar letras minúsculas para nomes de variáveis, sem espaço, sem caracteres especiais e sem acentuação; - É uma prática também, usar letras maiúsculas para nomes de constantes, da mesma forma, sem espaço, sem caracteres especiais e sem acentuação;
Nomes de variáveis Portando: int Número; //errado char açúcar; //errado float 23ab; //errado double @k7; //errado int primeiro numero; //errado int numero; //certo char acucar; //certo float ab23; //certo double _k7; //certo int primeiro_numero; //certo
Os tipos do C
Os tipos do C O C tem 5 tipos básicos: char, int, float, void e double. O char, como já vimos, pode guardar um caractere, como 'a' ou um número da tabela ASCII como 60 O int, como também já vimos, pode guardar inteiros, como 2 O float e o double podem guardar números com ponto flutuante, como 23.4 O void é um tipo vazio.
Os modificadores de tipos do C Para cada um dos tipo de variáveis existem os modificadores de tipo. Os modificadores de tipo no C são quatro: signed, unsigned, long e short. Ao float não se pode aplicar nenhum e ao double pode-se aplicar apenas o long. Os quatro modificadores podem ser aplicados a inteiros. A intenção é que short e long devam prover tamanhos diferentes de inteiros onde isto for prático. Inteiros menores (short) ou maiores (long). int normalmente será o tamanho natural para uma determinada máquina. Assim, numa máquina de 16 bits, int provavelmente terá 16 bits, enquanto numa de 32 bits, int deverá ter 32 bits.
Os modificadores de tipos do C O modificador unsigned serve para especificar variáveis sem sinal. Por exemplo um unsigned int será um inteiro que assumirá apenas valores positivos.
Os modificadores de tipos do C Na tabela abaixo, são apresentados os tipos de dados permitidos e seus valores máximos e mínimos juntamente com o formato que deve ser utilizado para ser os tipos de dados com a função scanf()
Declaração e inicialização de variáveis em C
Declaração e inicialização de variáveis em C Crie o programa22.c
Declaração e inicialização de variáveis em C Digite o seguinte código:
Declaração e inicialização de variáveis em C Compile, rode e entre com o número 2.
Declaração e inicialização de variáveis em C Compile, rode e entre com o número 2. Como o loop (for) está 'rodando' 5 vezes a soma deveria dar 10. Mas por quê está dando esse valor?
Declaração e inicialização de variáveis em C O problema está na falta de inicialização da variável soma.
Declaração e inicialização de variáveis em C O problema está na falta de inicialização da variável soma.
Declaração e inicialização de variáveis em C Com a variável soma inicializada, o cálculo ocorre sem problemas.
Declaração e inicialização de variáveis em C Com a variável soma inicializada, o cálculo ocorre sem problemas.
Constantes
Constantes Constantes são valores que são mantidos fixos pelo compilador durante a execução do programa. Não declaramos tipos de dados nas constantes, e nem terminamos a declaração com ponto e vírgula. Ao contrário de uma variável que é declarada com letras minúsculas, as constantes são declaradas SEMPRE com todas as letras maiúscilas. A declaração de uma constante começa com cerquilha ('#') e a palavra reservada declare Exemplo: #define PI 3.14159265 #define NOVALINHA '\n'
Constantes Crie o programa23.c
Constantes Digite o seguinte código:
Constantes Compilado e executado...
Operadores Aritiméticos e de Atribuição
Operadores Aritiméticos e de Atribuição Utilizados para realizar operações matemáticas, são eles:
Operadores Aritiméticos e de Atribuição Crie o programa24.c
Operadores Aritiméticos e de Atribuição Digite o seguinte código:
Operadores Aritiméticos e de Atribuição Compilado e rodando...
Operadores Relacionais e Lógicos
Operadores Relacionais e Lógicos Já conhecemos os relacionais...
Operadores Relacionais e Lógicos Já conhecemos os relacionais...
Operadores Relacionais e Lógicos Crie o programa25.c
Operadores Relacionais e Lógicos Digite o seguinte código:
Operadores Relacionais e Lógicos Compilando e rodando...
Operadores Lógicos Bit a Bit
Operadores Lógicos Bit a Bit O C permite que se faça operações lógicas bit-a-bit em números. Ou seja, neste caso, o número é representado por sua forma binária e as operações são feitas em cada bit dele.
Operadores Lógicos Bit a Bit Imagine um número inteiro de 16 bits e a variável i armazenando o valor 2. int i = 2; A representação binária de i será: 0000000000000010 São quinze zeros e um único 1 na segunda posição da direita para a esquerda.
Operadores Lógicos Bit a Bit Imagine um número inteiro de 16 bits e a variável i armazenando o valor 2. int i = 2; A representação binária de i será: 0000000000000010 São quinze zeros e um único 1 na segunda posição da direita para a esquerda. Podemos fazer operações em cada um dos bits deste número. Por exemplo, se fizermos a negação do número (utilizando a operação binária NOT, ou o operador binário ~), isto é, ~i, o número se transformará em: 1111111111111101 O i que antes valia 2 agora vale 65533
Operadores Lógicos Bit a Bit As operações binárias ajudam os programadores que queiram ou precisem trabalhar com o computador em "baixo nível". As operações lógicas bit a bit só podem ser usadas nos tipo char, int e long int. Os operadores são:
Operadores Lógicos Bit a Bit Crie o programa26.c
Operadores Lógicos Bit a Bit Digite o seguinte código:
Operadores Lógicos Bit a Bit Compilando e rodando...
O modelador Cast
O modelador Cast Um modelador é aplicado a uma expressão para forçá-la a ser de um tipo especificado. Sua forma geral é: (tipo)expressão;
O modelador Cast Crie o programa27.c
O modelador Cast Digite o seguinte código:
O modelador Cast Compilado e rodando...
Laboratório de Programação II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br
Exercícios 1) Crie um programa que gere automaticamente o alfabeto em letras minúsculas e imprima no console de trás para frente. Ou seja, de z até a. 2) Crie um programa que receba 5 vezes o nome de uma fruta, para cada fruta informada conte quantas consoantes e quantas vogais tem no nome da fruta e imprima no console. 3) Crie um programa que receba do teclado uma frase e imprima no console a mesma frase ao contrário.