PCI- Introdução a linguagem C Profa. Mercedes Gonzales Márquez

Preview:

Citation preview

PCI- Introdução a linguagem C

Profa. Mercedes Gonzales Márquez

Primeiro Programa

Estrutura do código fonte– Comentários– Diretivas de compilador– Procedimento principal

Primeiro Programa

/* file: oi.c* Este programa escreve a mensagem "Oi pessoal"* na tela. O programa foi tomado do livro* "Art and Science of C" de Eric Roberts.*/#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;}

Primeiro Programa

/* file: oi.c* Este programa escreve a mensagem "Oi pessoal"* na tela. O programa foi tomado do livro* "Art and Science of C" de Eric Roberts.*/#include <stdio.h>int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;}

Comentários

Diretivas deCompilador

ProcedimentoPrincipal

Primeiro Programa

Comentários• Texto ignorado pelo compilador• Documentação útil para descrever trechos do algoritmo• Possível em qualquer posição do código fonte• Duas formas para comentários:

- Uma linha:// Comentário ...- Várias linhas: /* Comentário...mais comentários ... */

Primeiro Programa

Diretivas de Compilador:• Informam outros arquivos que devem ser consultados

antes de compilar.• Definem parâmetros utilizados pelo compilador.• São colocadas no início do código fonte.

Exemplos: #include <stdio.h>#include <stdlib.h>#include <math.h>

Primeiro Programa

Procedimento principal:• Sequência de instruções• Pontuação: ponto-e-vírgula termina instruções• Chaves agrupam instruções relacionadas

int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;

• int argc, char* argv[] e return 0 são obrigatórios.

Memória

• Memória: sequência de células• Endereço: posição da célula • Células armazenam dados– Valor pequeno: uma célula– Valor grande: duas ou mais células

Memória

• Operações na memória:1. Consulta (lê) células de memória2. Programa calcula um novo valor3. Armazena (escreve) o novo valor em uma célula

Variáveis

• Abstração dos endereços de memória.• Rótulo simbólico para cada endereço.

Variáveis

• Variável: nome simbólico associado a um dado.

Nome (rótulo)Variável:

Valor (conteúdo)

Declarando uma variável

Declara-se da seguinte forma: Tipo Variável Nome Variável;

Exemplo :int numero;

Variáveis inteiras

Os seguintes são os tipos da linguagem C que servem para armazenar inteiros:int: Inteiro cujo comprimento depende do processador. E o inteiro mais utilizado. Em processadores Intel comum, ocupa 32 bits e pode armazenar valores de -2.147.483.648 a 2.147.483.647.unsigned int: Inteiro cujo comprimento depende do processador e que armazena somente valores positivos. Em processadores Intel comum, ocupa 32 bits e pode armazenar valores de 0 a 4.294.967.295.

Variáveis inteiras

long int: Inteiro que ocupa 64 bits em computadores Intel de 64bits e pode armazenar valores de aprox. -9 x1018 a aprox. 9 x1018.unsigned long int: Inteiro que ocupa 64 bits e em computadores Intel de 64bits e armazena valores de 0 ate aprox. 18 x1018.short int: Inteiro que ocupa 16 bits e pode armazenar valores de -32.768 a 32.767.unsigned short int: Inteiro que ocupa 16 bits e pode armazenar valores de 0 a 65.535.

Variáveis de tipo caracter

Variáveis utilizadas para armazenar letras e outros símbolos existentes em textos. Guarda apenas um caracter.Exemplos de declaração:char umaLetra;

Variáveis de tipo ponto flutuante

Variáveis utilizadas para armazenar letras e outros símbolos existentes em textos. Guarda apenas um caracter.Exemplos de declaração:char umaLetra;

Variáveis de tipo ponto flutuante

Armazenam valores reais. Mas possuem problemas de precisão pois há uma quantidade limitada de memória para armazenar um número real.Exemplos de números em ponto flutuante: 2.1345 ou 9098.123.- float: Utiliza 32 bits, e na pratica tem precisão de aproximadamente 6 casas decimais (depois do ponto). Pode armazenar valores de (+/-)10-38 a (+/-)1038

double: Utiliza 64 bits, e na pratica tem precisão deaproximadamente 15 casas decimais. Pode armazenar valores de (+/-)10-308 a (+/-)10308

Regras para nomes de variáveis em C

• Deve começar e pode conter letra (maiúscula ou minúscula) ou underline(_).

• Não pode-se utilizar como parte do nome de uma variável: { ( + - * / \ ; . , ?

• Letras maiúsculas e minúsculas são diferentes:• As seguintes palavras são reservadas na linguagem C

e portanto não podem ser utilizadas como nome de variáveis:

auto double int struct break enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do

if static while

Operações aritméticas e expressões

Operações aritméticas podem ser combinadas formando expressões. Existe uma regra de multiplicação e divisão (mesma prioridade) sobre soma e subtração (mesma prioridade) e a ordem de execução para operadores da mesma prioridade é de esquerda para direita. Exemplo.int main(){int a=20, b=10;float c=1.5,d;d=c*b/a; /*atribui 0.75 para d*/d=c*(b/a); /*atribui 0.0 para d pois a divisão entre inteiros resulta em um inteiro*/}

Operações aritméticas e expressões

Note que a melhor forma de garantir o resultado esperado é usar parênteses. A prioridade de execução neste caso é da expressão mais interna para a mais externa.

Int main(){int a=20, b=10;float c=1.5, d;d= (((a+5)*10)/2)+b; /*atribui 135 para d*/}

Operações aritméticas e expressões

Símbolo Função

+ Adição

- subtração

* Multiplicação

/ Divisão real

% Resto da divisão inteira

/ Quociente da divisão inteira

Constantes

Assim como variáveis, constantes são usadas para armazenar números e caracteres. Exemplos:# define PI 3.1415926536 /* atribui o valor para PI*/# define Delta 0.001

Definindo novos tipos

Podemos usar o comando typedef para definir novos tipos de variáveis ou abreviar tipos existentes.

Typedef enum {false,true} bool; /* o tipo bool só armazena 0/false e 1/true*/

Operações lógicas e expressões

Os caracteres &&, ||, !, indicam as seguintes operações lógicas: and, or e not, correspondendo às operações de conjunção, disjunção e negação, respectivamente.

Operações lógicas e expressões

#include <stdio.h> /*Biblioteca para incluir comandos de entrada e saída como printf*/

Typedef enum {false,true} bool;Int main(){ bool v1,v2,v3;v1=true;v2=false;v3=v1&&v2;v3=v1||v2;v3=!v1;v3=((v1&&v2))||(!v2);printf("%d,%d,%d\n",v1,v2,v3);

}

Funções matemáticas

Função Resultado

Sin(x) Seno de um ângulo

cos(x) Coseno de um ângulo

tan(x) Tangente do ângulo

exp(x) O número e elevado a x.

ln(x) Logaritmo neperiano de x

sqrt(x) Raiz quadrada de x

log10(x) Logaritmo base 10 de x

Round(x) Arredondamento do ponto flutuante x.

Várias funções matemáticas são disponibilizadas pela linguagem C.

Funções matemáticas#include <stdio.h> #include <math.h>  /* biblioteca padrão para funções matemáticas básicas*/# define PI 3.1415926536 /* atribui o valor para PI*/int main(int argc, char *argv[]) { float a=1.0,b;printf("O valor 4.3 arredondado usando round() e %f", round(4.3)); b=exp(a);printf(“a=%f, b=%f\n”,a,b);a=2.0;a=pow(a,3.0);printf(“a=%f\n”,a);a=cos(PI/2);printf(“a=%f\n”,a);return 0; }

Comandos de entrada/saída

Entrada de Dados:O teclado é o dispositivo padrão para entrada de dados. O comando scanf lê números e caracteres digitados no teclado da seguinte forma:scanf (%d”, &x) onde x é uma variável inteira e &x é o endereço em memória da variável x.Cada tipo de variável requer um símbolo específico de conversão. O símbolo %d é usado para variáveis int,short, unsigned short, unsigned char;O símbolo %u é usado para unsigned inteiro.O símbolo %c para char.O símbolo %s para char e cadeias de caracteres.O símbolo %f para flota e o símbolo %lf para double.

Comandos de entrada/saída

Saída de Dados: O teclado é o dispositivo padrão para saída de dados. O comando printf apresenta números e caracteres na tela da seguinte forma: printf (%d”, x) onde x é uma variável inteira

Exemplo:#include<stdio.h>Int main(){Int a=9, b=800;Float c=20.9176, d=-1.4219/*\n pula linha, 3 indica o número de dígitos, incluindo o sinal, se houver, 5 indica o número de dígitos total, incluindo o sinal, se houver, e 2 indica o número de dígitos após o ponto.Printf (“\n a=3d,\n b=%3d, \n c=%5.2f, \n d=%5.2f.\n”,a,b,c,d);return(0);}

Comandos de entrada/saída

include<stdio.h>int main(){

int ano;printf(“Digite o ano de nascimento:");scanf(“%d",&ano);printf(“O ano de nascimento digitado foi: %d\

n",ano);}

Comandos de entrada/saída

include<stdio.h>int main(){

int base, altura, area;printf`(“Digite a base do retangulo:");scanf(“%d",&base);printf(“Digite a altura do retangulo:");scanf(“%d",&altura);area = base altura;printf(“Valor da area e: %d\n",area);

}

Exercícios de comandos de entrada e saída

1. Faça um programa que leia o valor do salário de um funcionário, calcule e mostre seu novo salário, sabendo que o mesmo recebeu um aumento de 21,3%.

2. Faça um programa que receba a altura do degrau de uma escada e a altura que o usuário deseja alcançar subindo a escada. Calcular e mostrar quantos degraus o usuário deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário.

3. 3. Leia o valor do raio de um círculo e calcule a área deste círculo.

Comandos de entrada/saída

4. A importância de R$ 780.000,00 será dividida entre três ganhadores de um concurso. Sendo que da quantia total: O primeiro ganhador receberá 46%; O segundo receberá 32%; O terceiro receberá o restante.Calcule e imprima a quantia ganha por cada um dos ganhadores.5. Uma empresa contrata um encanador a R$ 30,00 por dia. Crie um programa que solicite o número de dias trabalhados pelo encanador e imprima a quantia líquida que deverá ser paga, sabendo-se que são descontados 8% para pagamento de impostos e taxas devidas.6. Leia os valores de dois catetos de um triângulo e calcule e mostre o valor da hipotenusa

Recommended