Aula01 introducao operacoes

231 visualizações

Publicada em

Operações aritméticas, tipos básicos, introdução a C.

Publicada em: Ciências
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
231
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula01 introducao operacoes

  1. 1. Introdução a C Yuri Tavares dos Passos
  2. 2. Histórico ● Nas universidades de Cambridge e de Londres criou-se a linguagem CPL (Combined Programming Language) em 1963. ● Martin Richards (Cambridge) cria a linguagem BCPL (Basic Combined Programming Language). ● Ken Tompson do Laboratório Bell cria a linguagem B em 1970 para o computador PDP- 11.
  3. 3. Histórico ● O Unix é re-escrito na linguagem B, linguagem interpretada, portanto lenta. ● Como o PDP-11 era orientado por palavra em vez de byte, assim apareceu a necessidade de uma sucessora de B. ● Denis Ritchie do Laboratório Bell cria linguagem C em 1972.
  4. 4. Histórico ● O Unix foi desenvolvido em 1969 sendo codificado em Assembly e foi re-escrito em C em 1973. Desse fato gerou a história de C ser conhecido como uma linguagem de desenvolvimento de sistemas operacionais.
  5. 5. Características ● É uma linguagem de programação imperativa. ● Esta forma de programação também é conhecida como programação modular, ou programação procedural. ● É uma extensão da programação estruturada, que afirma que todo programa pode ser feito utilizando apenas sequências de comandos, seleções e repetições.
  6. 6. Características ● O nome modular vem da palavra módulos. ● Isto quer dizer que seu programa pode ser dividido em módulos que possuem um objetivo específico e resolvem um pequeno problema. ● A união de todos os módulos forma a solução de um problema maior que é o objetivo do sistema computacional a ser escrito em programação modular.
  7. 7. Características ● A programação imperativa descreve um programa por etapas que correspondem a ações do que o computador deve fazer para alcançar um objetivo. ● Verbos no modo imperativo são usados para denotar estas ações. ● Exemplo: leia(numero) escreva(2*numero)
  8. 8. Características ● O nome programação procedural vem da palavra procedimento. ● Baseia-se na declaração de funções e procedimentos para construção de sistemas. Em C, o programa principal é uma função que chama outras. ● Um módulo pode ser visto como cada uma destas funções ou procedimentos.
  9. 9. Características ● C é utilizada em programas que prezam pela execução rápida, como análises numéricas, processamento de imagens e vídeos, aplicações de tempo real, drivers de hardware, etc. ● C também pode ser usada para escrita de bibliotecas de procedimentos (Ex.: DLL) que podem servir como extensões ou plugins de softwares.
  10. 10. Características ● São exemplos de aplicações científicas com intenso processamento tais como meteorologia, oceanografia, física, astronomia, geofísica, engenharia e economia
  11. 11. Características ● C é uma linguagem de médio nível, pois ela também pode ser usada em conjunto com partes escritas em linguagem de máquina. – Uma linguagem de alto nível é mais próxima da linguagem humana. ● Ex.: Portuguol do Visualg. – Uma linguagem de baixo nível é mais próxima da linguagem de máquina. ● Ex.: Assembly.
  12. 12. Características ● Possui os comandos clássicos de controle de execução. ● Possui uma sintaxe bem definida para a formação de programas. ● Faz distinção entre letras maiúsculas e minúsculas. – Nota ≠ nota – Valor ≠ valor – F ≠ f
  13. 13. Características ● Um comando em C é terminado com “;” (ponto-e-vírgula). ● Um programa em C: 1) Importação de módulos (ou bibliotecas) contendo outras funções ou comandos; 2) Execução do bloco principal, representado pela função int main().
  14. 14. Características /* Inclusão de módulos ou bibliotecas de funções (opcional) */ #include <módulo> #include “módulo” int main(){ /* Bloco principal */ return 0; }
  15. 15. Primeiro programa
  16. 16. Identificadores ● São os nomes utilizados para criação de componentes dos programas, tais como variáveis e constantes. ● Possuem regras rígida de definição – Utilizar apenas letras, números e o caractere “_” – Começar com uma letra ou o caractere “_” – Exemplos válidos ● Nome1, NomePessoa, nome_pessoa, nome5, _nome_ – Exemplos inválidos ● 2nome, nome pessoa, p$nome, p-nome.
  17. 17. Tipos de dados básicos ● char – Usado para representa um caractere apenas. Cada caractere representa um número, letra ou símbolo que pode ser inserido via teclado ou representado pelo computador. – Um caractere constante pode ser representado por uma letra, dígito ou símbolo entre aspas simples. ● Ex: 'a', '0', '&', '*' – Se for necessário utilizar a própria aspas siples deve-se utilizar o caractere antes. ● Ex: '''
  18. 18. Tipos de dados básicos ● int – Representa números inteiros. ● float – Representa números reais com precisão baixa. ● double – Números reais com precisão dupla. ● As casas decimais dos números reais são representados por ponto. – Ex: 13.456
  19. 19. Tipos de dados básicos ● O char apesar de representar caracteres, ele também pode ser usado para representar números pequenos de apenas um byte. ● Na realidade, um caractere é um número inteiro que o computador sabe representar em símbolos.
  20. 20. Tipos de dados básicos ● Tabela de símbolos (excerto) Binário Decimal Hexadecimal Glifo 0100 0000 64 0x40 @ 0100 0001 65 0x41 A 0100 0010 66 0x42 B 0100 0011 67 0x43 C 0100 0100 68 0x44 D 0100 0101 69 0x45 E 0100 0110 70 0x46 F 0100 0111 71 0x47 G 0100 1000 72 0x48 H 0100 1001 73 0x49 I
  21. 21. Tipos básicos Tamanho Precisão char -> p/ caracteres 1 byte - 128 a + 127 int -> p/ inteiros 4 bytes* -2147483648 a 2147483647 float -> p/ reais 4 bytes* -3.4E-38 a +3.4E+38 double -> p/ reais 8 bytes* -1.7E-308 a +1.7E+308 * Variam a depender do processador Tipos de dados básicos
  22. 22. Variáveis e atribuições ● As variáveis podem ser declaradas em qualquer parte do código. Não existem uma parte específica onde devem ser declaradas. ● As atribuições em C são feitas utilizando o simbolo =.
  23. 23. Variáveis e atribuições
  24. 24. Variáveis e atribuições ● Por conta disso, surge o conceito de declaração local e global. ● Uma declaração é local se apenas uma parte do código consegue utilizar o que foi declarado. ● Uma declaração é global quando todo o programa consegue utilizar o que foi declarado
  25. 25. Variáveis e atribuições
  26. 26. Variáveis e atribuições ● A área de código que uma declaração de variável abrange dentro do código é conhecida como escopo desta variável.
  27. 27. Modificadores de tipos ● Os tipos básicos podem ser modificados utilizando-se palavras chaves especiais. ● São elas: Tipo Descrição unsigned Não usa o bit de sinal long Aumenta o número de bytes usados register Usa os registradores da CPU para a variável signed Usa o bit de sinal (padrão) short Utiliza o tamanho padrão
  28. 28. Modificadores de tipos Tipo Tamanho Precisão Unsigned int 4 bytes* 0 a 4294967295 Long [int] 8 bytes* -263 a 263 -1 Unsigned long [int] 8 bytes* 0 a 264 - 1 long double 12 bytes 96 bits em IEEE 754 * Variam a depender do processador ● Exemplos:
  29. 29. Modificadores de tipos ● Existe também o modificador const que torna uma variável constante. ● Assim, o valor daquela variável será atribuído somente uma vez, não podendo ser alterado novamente durante a execução do programa.
  30. 30. Modificadores de tipos
  31. 31. Frases literais ● Frases escritas em tela devem ser usadas com aspas duplas. ● Se forem utilizados caracteres especiais, devem ser usados com antes. – Se existir a necessidade de escrever frases contendo aspas duplas também ● Caracteres especiais mais comuns: – n: Quebra de linha – : Uma barra – xNN: um caractere cujo código em hexadecimal é NN.
  32. 32. Frases literais ● Exemplos: ● "Olá, mundo!" ● "Este exemplo possui aspas: "Olá, mundo!"" ● "Uma linha.nDuas linhas.nTrês linhas." ● "O operador é usado no Visualg para realizar a operação "quociente"."
  33. 33. Variáveis para literais (strings) ● Frases ou textos literais são conhecidos na programação como string ou cadeia. ● Uma string é uma sequência de caracteres. Para declarar uma variável do tipo string deve- se: 1) usar a palavra char, 2) declarar o nome da variável, 3) em seguida indicar a quantidade máxima de caracteres que esta variável deve armazenar.
  34. 34. Variáveis para literais (strings) ● Exemplos: – char texto[255]; – char msg[120]; – char nome[100]; – char palavra[10]; – char msg1[100], msg2[40];
  35. 35. Comentários ● São trechos de código que não são compilados. ● Servem para documentar o código, explicando partes do código fonte, com o intuito de auxiliar quem está lendo. ● Comentário de uma linha: // comentário ● Comentário de bloco, com várias linhas: /* comentário comentário comentário */
  36. 36. Operadores aritméticos ● Os operadores aritméticos utilizados são: Operação Símbolo Descrição Adição + Realiza a soma entre dois operandos Subtração - Realiza a subtração entre dois operandos Multiplicação * Realiza a mutiplicação entre dois operandos Divisão / Realiza a divisão entre dois operandos A precedência é a mesma da usada nos algoritmos, podendo ser alterada através do uso de parênteses. Exemplos: 2 * pi * raio (n1 + n2 + n3) / 3
  37. 37. Operadores aritméticos ● Observação sobre divisão – Caso os dois argumentos sejam inteiros, o resultado será um número inteiro – Caso qualquer um dos argumentos seja número real (float, double, etc.) o resultado será um número real. ● Exemplos: 3/2 = ?? 1/2 = ?? 3/2.0 = ?? 1.0/2 = ??
  38. 38. Valores lógicos em C ● Na linguagem C, não existe variáveis do tipo lógico. ● Para isto, C utiliza variáveis inteiras para expressar valores lógicos. ● Assim, um valor inteiro igual a 0, representa falso. Um valor inteiro diferente de zero é considerado verdadeiro. – Costuma-se usar 1 para representar verdadeiro em C.
  39. 39. Operadores relacionais ● São utilizados para construção de expressões lógicas. ● Em C, os operadores relacionais retornam 0 ou 1. Relação Operando Exemplo Descrição Igual == a == b Verifica se a é igual a b Diferente != a != b Verifica se a é diferente de b Maior > a > b Verifica se a é maior que b
  40. 40. Operadores relacionais Relação Operando Exemplo Descrição Menor < a < b Verifica se a é menor a b Maior ou igual >= a >= b Verifica se a é maior ou igual a b Menor ou igual <= a <= b Verifica se a é menor ou igual a b
  41. 41. Operadores relacionais ● Exemplos: – altura > 19 – idade < 10 – faltas == 0 – media != 6.0 – salario >= 800.00 – valor <= 100
  42. 42. Operadores lógicos ● Operadores capazes de conectar expressões relacionas ou lógicas. Em C, retornam 0 ou 1. Operação Resultado && Será 1, quando todos os operandos forem diferentes de 0, caso contrário será 0. || Será 0, quando todos os operandos forem 0, caso contrário será 1. ! Inverte o valor da expressão lógica (Qualquer valor diferente de 0 passa a ser 0 e 0 passa a ser 1).
  43. 43. Operadores lógicos ● Precedência: 1º) não: ! 2º) e: && 3º) ou: || ● Exemplos: – Considere a = 2, b = 3, c = 4 e d = 5. – !(a > b) && (c <= d) – (a == b) || (c != d)
  44. 44. Operadores binários ● São operadores que manipulam os bits de uma variável. São eles: Operação Operador Exemplo Descrição E binário & A &B Aplica um E bit a bit nos bits de A e de B. OU binário | A | B Aplica um OU bit a bit nos bits de A e de B. NÃO binário ~ ~A Aplica o NÃO em cada bit de A.
  45. 45. Operadores binários Operação Operador Exemplo Descrição Deslocamento à direita >> A >> B Desloca os bits de A para direita, B vezes. B deve ser um número inteiro. São colocados zeros nos bits da extrema esquerda. Deslocamento à esquerda << A << B Desloca os bits de A para esquerda, B vezes. B deve ser um número inteiro. São colocados zeros nos bits da extrema direita.
  46. 46. Operadores binários ● Exemplos: – char a = 2, b = 15; //a = 0000 0010 b = 0000 1111 – char c = a & b; //c = 0000 0010 – c = a | b; //c = 0000 1111 – c = ~a; //c = 1111 1101
  47. 47. Operadores binários ● Exemplos: – char valor = 2; //valor = 0000 0010 – valor = valor << 2; //valor = 0000 1000
  48. 48. Operadores abreviados ● São operadores que abreviam operações usuais em programação. O uso delas pode tornar a execução do executável mais rápida. ● Incremento e decremento de 1: ++: incremento de 1 -- : decremento de 1 ● Exemplos: – valor++; – quantidade--; – ++folhas; – --faltas;
  49. 49. Operadores abreviados ● A posição deles influencia – valor++ será executado por último após outros comandos. – ++valor será a primeira coisa a executar numa linha. ● Exemplos: – Suponha v = x = 1: float A = v++ /2.0; float B = ++x /2.0;
  50. 50. Operadores abreviados ● +=: incremento de um valor arbitrário. ● Uso: <variável> += <expressão>; ● Significa o mesmo que: <variável> = <variável> + <expressão>; ● Exemplos: – valor+=3; //valor = valor + 3; – x += y*2; //x = x + y*2;
  51. 51. Operadores abreviados ● O mesmo ocorre com -=, *=, /=, <<=, >>=, &= e |=.
  52. 52. Comando de escrita (impressão) ● Para escrever algo na tela é necessário incluir o módulo stdio.h. Dentro deste módulo, existe o comando: printf() ● O comando printf() possui 1 ou mais argumentos. – O primeiro argumento é um literal. – Os demais argumentos são opcionais.
  53. 53. Comando de escrita (impressão) ● Com um argumento podemos apenas escrever frases. ● Exemplos: – printf("Olá, mundo!") – printf("Olá, mundo!n") – printf("1n2n3n4")
  54. 54. Comando de escrita (impressão) ● Para escrevermos os valores das variáveis com printf, deve-se utilizar os argumentos opcionais, de tal forma que cada argumento corresponde a aparição da variável na frase que será escrita. ● Além disso, é necessário especificar a posição na frase em que a variável irá aparecer e o tipo de variável.
  55. 55. Comando de escrita (impressão) ● Existem várias especificações de tipos que podem ser impressos pelo printf. Apenas os mais usuais serão mostrados a seguir.
  56. 56. Comando de escrita (impressão) ● %i ou %d: números inteiros decimais. ● %x, %X: números inteiros hexadecimais com letras minúsculas e letras maíusculas, respectivamente. ● %f: números reais. ● %e, %E: representa em notação científica com e ou E, respectivamente.
  57. 57. Comando de escrita (impressão) ● %g: Usa a menor versão entre %f e %e. ● %G: Usa a menor versão entre %f e %E. ● %c: caracteres ● %s: frases literais armazenadas em variáveis (strings) ● %p: ponteiros
  58. 58. Comando de escrita (impressão)
  59. 59. Comando de escrita (impressão) ● Formatação da saída. – A forma como os valores das variáveis são escritas na tela podem ser modificadas no printf. É possível: ● fixar a quantidade de casas decimais de um número real; ● Preencher com espaços à esquerda, caso o número seja pequeno; ● Preencher com zeros à esquerda; ● Etc.
  60. 60. Comando de escrita (impressão)
  61. 61. Comando de escrita (impressão)
  62. 62. Comando de escrita (impressão)
  63. 63. Comando de escrita (impressão)
  64. 64. Comando de leitura ● Para lermos valores e armazená-los em variáveis, usa-se o comando scanf. ● O primeiro argumento do scanf é um literal que deve especificar o tipo da variável, idêntico ao printf. ● O demais argumentos são as variáveis que serão lidas, todas começando com &. ● Cada variável armazena o valor apenas após ser lido o ENTER.
  65. 65. Comando de leitura ● Exemplos: scanf("%c",&c1); scanf("%c %c",&c1,&c2); scanf("%i",&x); scanf("%i %i %i",&x,&y,&z); scanf("%f",&salario);
  66. 66. Comando de leitura ● Quando a variável a ser lida for do tipo literal (também conhecido como string), não utiliza &. ● Exemplo: char frase[100], msg1[20], msg2[20]; scanf("%s", frase); scanf("%s %s", msg1, msg2);
  67. 67. Comando de leitura
  68. 68. Code::Blocks
  69. 69. Code::Blocks
  70. 70. Linha de comando (Linux) ● Mudar para o diretório onde estão seus códigos em C. Suponha que ele esteja no diretório /home/nome/c/: – cd /home/nome/c/ ● Suponha que você tenha salvo um arquivo com nome aula01.c. Para compilá-lo pela linha de comando, digite: – gcc aula01.c
  71. 71. Linha de comando (Linux) ● Ao compilar, será gerado um arquivo com nome a.out. Se você quiser gerar um arquivo executável com nome próprio use a opção -o, assim: – gcc -o aula01 aula01.c ● Execute seu programa digitando ./ antes do nome do seu programa. – ./aula01
  72. 72. Linha de comando (Linux)
  73. 73. Exercícios 1) Elaborar um programa que receba a idade de uma pessoa em número de anos, calcule e escreva essa idade em meses, dias, horas e minutos. 2) Elaborar um programa para calcular a diferença de preços de um determinado produto, comparando os preços de compra atual e anterior. O programa deve obter os preços atual e anterior e exibir a diferença algébrica e percentual dos preços.
  74. 74. Exercícios 3) Escrever um programa para efetuar o cálculo da quantidade de litros de combustível gastos em uma viagem, sabendo-se que o veículo faz 9 km/litro. O usuário informará a velocidade média e o tempo despendido na viagem. (Obter o tempo em horas e minutos, em separado). O programa deve apresentar a distância percorrida e a quantidade de litros gastos.
  75. 75. Exercícios 4) Elaborar um programa para calcular o comprimento de um círculo, obtendo como entrada a medida do raio(r). A fórmula da área é 2*pi*raio. 5) Em certa disciplina, a nota média do aluno é calculada com base em três provas. A primeira prova tem peso 3, a segunda tem peso 3 e a terceira tem peso 4.  Fazer um programa para calcular e apresentar a nota média, tendo como dados de entrada o nome do aluno e as notas referentes as três provas e como saída o nome e a média calculada.
  76. 76. Exercícios 6) João deseja fazer um programa em C que imprima todos os números reais 0.333, 0.25, 0.20 e 0.166. Ele fez o seguinte programa para isto: Mas seu programa só escreve zeros. Por quê? Corrija o programa dele usando o operador da divisão.
  77. 77. Exercícios 7) O comando sizeof() pode ser usado para descobrir o tamanho de variáveis ou tipos de variáveis. O programa abaixo escreve 1 na tela, visto que char é sempre 1 byte. Faça um programa em C que use o comando sizeof() para descobrir o tamanho dos seguintes tipos em sua máquina: int, unsigned int, long int, long, unsigned char, double, float. #include <stdio.h> int main(){ printf(“%dn”, sizeof(char)); }
  78. 78. Exercícios 8) Faça um programa que escreva na tela os 15 primeiros números que são potência de 2 utilizando apenas operadores binários.

×