SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
Programação de
Computadores
Aula 1
02/08/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 1: Apresentação da Disciplina e Introdução à Linguagem C
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coraçã – USC
Bauru/SP
Informações da disciplina
•   Carga Horária Total: 72 horas
•   Carga Horária Prática: 36 horas
•   Carga Horária Teórica: 36 horas
•   Pré-requisitos: Algoritmos e estrutura de dados
•   Competências da disciplina: Análise de problemas e
    projeção de soluções que requeiram uma combinação
    de hardware e software; Domínio dos aspectos
    técnicos de sua área de atuação; Projeto e construção
    de software usando a linguagem C.
                                                            2
Ementa
• História e evolução da linguagem C;
• Características da linguagem C;
• Sintaxe da linguagem C;
• Variáveis; operadores; tipos de dados; identificadores;
  palavras reservadas; bibliotecas; entrada e saída;
  estrutura básica de um programa em C; incremento e
  decremento;
• Estruturas condicionais e de repetição; vetores e
  matrizes; registros; manipulação de strings e arquivos;
  macros; funções; ponteiros; estruturas de dados, classes
  de variáveis; tipos de chamadas; alocação dinâmica.        3
Objetivos
• Aplicar técnicas de programação para manipulação de
  registros, arquivos, ordenação e estruturação de
  dados;

• Utilizar corretamente os comandos de programação da
  linguagem C;




                                                        4
Conteúdo Programático
UNIDADE 1 – APRESENTAÇÃO DA DISCIPLINA E INTRODUÇÃO À
LINGUAGEM C (4h)
     • História da linguagem C;
     • Visão geral da linguagem C;
     • Expressões em C;
     • Tipos de dados;
     • Identificadores;
     • Variáveis;
     • Modificadores de acesso;
     • Especificadores;
     • Constantes;                                      5
     • Operadores.
Conteúdo Programático
UNIDADE 2 – COMANDOS DE CONTROLE DE PROGRAMA
(4h)
     • Seleção;
     • Decisão;
     • Repetição;
     • Condição;
     • Iteração.



                                               6
Conteúdo Programático
UNIDADE 3 – FUNÇÕES (4h)
    • Funções e estrutura de programas;
    • Funções que retornam valor;
    • Passando dados para a função chamada;
    • Funções não inteiras;
    • Argumentos de funções:
    • Chamada por valor
    • Chamada por referência;
    • Protótipos de funções.
                                              7
Conteúdo Programático
UNIDADE 4 – VETORES, MATRIZES E STRINGS (8h)
    • Vetores em C;
    • Matrizes unidimensionais;
    • Matrizes bidimensionais;
    • Matrizes multidimensionais;
    • Matrizes como argumentos de funções;
    • Strings constantes e variáveis strings;
    • Funções de strings: Scanf(), gets(), puts(),strlen(),
      strcat(), strcmp(), strcpy();
    • Matriz de strings.                                      8
Conteúdo Programático
UNIDADE 5 – PONTEIROS (4h)
    • Variáveis;
    • Operadores;
    • Expressões;
    • Matrizes;
    • Funções;
    • Alocação dinâmica.


                             9
Conteúdo Programático
UNIDADE 6 – ESTRUTURAS, UNIÕES, ENUMERAÇÕES E
TIPOS DEFINIDOS PELO USUÁRIO (8h)
    • Estruturas;
    • Matrizes de estruturas;
    • Ponteiros para estruturas;
    • Campos de bits;
    • Uniões;
    • Enumerações;
    • Sizeof;
    • Typedef.                                  10
Conteúdo Programático
UNIDADE 7 – ENTRADA E SAÍDA (4h)
    • Console;
    • Lendo e escrevendo caracteres;
    • Lendo e escrevendo strings;
    • E/S formatada pelo console;
    • printf() e scanf();
    • Arquivo;
    • Streams e Arquivos;
    • Fundamentos de sistema de arquivos;
                                            11
    • Streams padrão.
Conteúdo Programático
UNIDADE 8 – PRÉ-PROCESSADOR (4h)
    • #define, #error e #include;
    • Diretivas e Defined;
    • #line e #pragma;
    • Macros;
    • Linkedição;
    • Bibliotecas;
    • Arquivos de cabeçalho;
    • Biblioteca padrão C.
                                    12
Conteúdo Programático
UNIDADE 9 – ORDENAÇÃO E PESQUISA (4h)
    • Seleção, Inserção, Shell e Quicksort;
    • Ordenações melhores;
    • Ordenação de strings e Ordenação de
      estruturas;
    • Métodos de pesquisa;
    • Pesquisa seqüencial e Pesquisa binária.


                                                13
Conteúdo Programático
UNIDADE 10 – ESTRUTURA DE DADOS (8h)
    • Filas;
    • Pilhas;
    • Listas;
    • Árvores;
    • Grafos;
    • Recursividade.


                                       14
Conteúdo Programático
UNIDADE 11 – FUNÇÕES DE C (4h)
   • Matemáticas;
   • Hora e data;
   • Gráficas e textuais;
   • Miscelâneas;



                                 15
Conteúdo Programático
UNIDADE 12 – EFICIÊNCIA, PORTABILIDADE E
DEPURAÇÃO (4h)
    • Operadores de incremento e decremento;
    • Variáveis em registradores;
    • Ponteiros e indexação de matrizes;
    • Programas portáveis;
    • Depuração e Erros;
    • Problemas e Colisões;
    • Manutenção de programas;
                                               16
Metodologia
Atividades Metodológicas:
     • Aulas expositivas e dialogadas;
     • Atividades práticas utilizando o computador,
       softwares específicos e Internet;
     • Questionamentos orais e escritos (Quiz);
     • Elaboração de resumos;
     • Resolução de problemas;
     • Investigação de conceitos;
     • Seminários.
                                                      17
Metodologia
Recursos didáticos:
    • Laboratórios;
    • Textos;
    • Projetor multimídia;
    • Notebook;
    • Softwares;
    • Plataforma Moodle Tecnológico;
    • Software DevC;
                                       18
Avaliação

 Instrumento     Objetivo      Contexto     Valor – Peso
                 Conceitual
  Prova P1                     Individual      35%
               Procedimental
                 Conceitual
  Prova P2                     Individual      35%
               Procedimental
                               Individual
  Trabalhos    Procedimental                   10%
                                Coletivo
                Atitudinal
 Seminários                    Individual      10%
                Conceitual
                 Atitudinal    Individual
    Quiz                                       10%
               Procedimental    Coletivo
                                                           19
Bibliografia Básica
• MIZRAHI, Victorine Viviane. Treinamento em
  linguagem C. 2ª Edição. São Paulo: Editora Prentice
  Hall, 2008.

• MANZANO, José Augusto N. G. Estudo Dirigido de
  Linguagem C. 13.ª Edição. Editora Érica.

• SCHILDT, Herbert. C completo e total. 3ª Edição. São
  Paulo: Editora Makron Books.
                                                         20
Bibliografia Complementar
• Instituto Brasileiro em Informática. Dominando a
  linguagem C. Rio de Janeiro: IBPI, 1993..
• SCHILDT, Herbert. Linguagem C: guia do usuário. Rio
  de Janeiro: McGraw-Hill, 1986.
• HANCOCK, Lê. Manual de linguagem C. Rio de Janeiro:
  Campus, 1986.
• PUGH, Kenneth. Programando em linguagem C. São
  Paulo: McGraw-Hill, 1990.
• SCHILDT, Herbert. Turbo C avançado: guia do usuário.
  São Paulo: McGraw-Hill, 1990.
                                                         21
Grau de Abstração
• Linguagens de programação de baixo nível: linguagem de
  máquina, por exemplo, Assembly.

• Linguagens de programação de médio nível: conversão direta
  para código de máquina, por exemplo, C.

• Linguagem de programação de alto nível: fácil para ser
  humano e complexo para a máquina, por exemplo, Java.



                                                               22
Paradigmas de Linguagens de
Programação
• Um paradigma de programação fornece e determina a visão
  que o programador possui sobre a estruturação e execução do
  programa. Os principais paradigmas de linguagens de
  programação são:
  • Linguagem Funcional: trata a computação como uma avaliação de
    funções matemáticas, por exemplo, LISP.
  • Programação Lógica: faz uso da lógica matemática, por exemplo,
    PROLOG.
  • Programação Imperativa:
     • Programação Estruturada: ou programação modular, por exemplo,
       PASCAL.
     • Orientação a Objetos: abstração de conceitos do mundo real, por
       exemplo, JAVA.                                                    23
Interpretação X Compilação
• Um programa é uma forma de comunicação com o
  computador e, sabemos que, a única linguagem que o
  computador entende, é a linguagem de máquina.
• Assim, todos os programas devem estar em linguagem de
  máquina e, para isso, eles devem ser traduzidos. A tradução
  tem duas categorias: interpretação e compilação.
• A criação de um programa consiste na conversão do código
  fonte para códigos de linguagem de máquina. Esta
  “transformação” pode ocorrer antes ou durante a execução.
• Caso ocorra antes da execução o processo é chamado de
  compilação – normalmente gera um arquivo executável.
• Caso ocorra durante a execução o processo é chamado de        24
  interpretação – HTML é um bom exemplo de linguagem
  interpretada.
Interpretação X Compilação
• Um interpretador lê o código fonte do seu programa uma
  linha por vez, executando a instrução específica contida nessa
  linha..
• Um compilador lê o programa inteiro e converte-o em um
  código-objeto, que é uma tradução do código-fonte do
  programa em uma forma que o computador possa executar
  diretamente.
• Um programa interpretado precisa do seu interpretador
  instalado na máquina em que será executado.
• Um programa compilado é independente.

                                                                   25
História da Linguagem C
• Criada por Dennis Ritchie, 1972, centro de pesquisas da Bell
  Laboratories;
• 1ª utilização: reescrita do sistema operacional UNIX;
• 1980: vários compiladores C disponíveis;
• Linguagem imperativa de propósito geral;
• Algumas características:
  •   Portabilidade;
  •   Geração de código eficiente;
  •   Simplicidade;
  •   Facilidade de uso;
• Observação: C é case sensitive
                                                                 26
Estrutura do Programa
/* Estrutura de um programa        int função_1 (variáveis)
em C */                            {
# include                                  declaração de variáveis
<arquivo_cabecalho.h>                      instrução_1;
main ( )                                   instrução_2;
{                                          -
         declaração de variáveis           -
         instrução_1;                      return (INT);
         instrução_2;              }
         função_1(variáveis);
         instrução_3;
         -
         -
}
                                                                     27
Tipos de dados em C
•   char – caractere
•   int – inteiros
•   float – reais
•   double – flutuante
•   void – função que não retorna valor




                                          28
Modificadores de tipos de
dados
• Modificadores são usados para alterar o significado de um
  tipo básico para adaptá-lo mais precisamente às necessidades
  de diversas situações.

• Para Caractere e Inteiro:
  •   signed – com sinal
  •   unsigned – sem sinal
  •   long – longo
  •   short – curto


• Para double:
  • long                                                         29
Todos os tipos de dados
          Tipo           Bits                Faixa
          char            8               - 127 a 127
      unsigned char       8                 0 a 255
       signed char        8               -127 a 127
           int           16            -32.767 a 32.767
      unsigned int       16               0 a 65.535
        signed int       16            -32.767 a 32.767
        short int        16            -32.767 a 32.767
    unsigned short int   16               0 a 65.535
     signed short int    16            -32.767 a 32.767
         long int        32     -2.147.483.647 a 2.147.483.647
     signed long int     32     -2.147.483.647 a 2.147.483.647
    unsigned long int    32           0 a 4.294.967.295
          float          32         Seis dígitos de precisão
                                                                 30
         double          64         Dez dígitos de precisão
       long double       80         Dez dígitos de precisão
Identificadores
• São nomes usados para se fazer referência a variáveis,
  funções, rótulos e outros objetos definidos pelo usuário;
  • int X;
  • int _X;
• É diferente de:
  • int x;
  • int _x;
• Dicas:
  • Um programa deve ser legível para outros programadores;
  • Escolher identificadores intuitivos, por exemplo, se uma variável
    deve armazenar uma soma, um identificador muito bom para ela
    será Soma.                                                          31
Palavras Reservadas em C




                           32
Variáveis
• Variável é uma posição de memória cujo conteúdo pode ser
  modificado durante a execução de um programa. A referência
  a uma variável no programa é feita através do seu
  identificador. Os valores que podem ser nela armazenados
  dependem do seu tipo de dado.
• Sintaxe:
  • tipo identificador;
  • int x;

  • int é o tipo e x é o identificador;


                                                               33
Declaração e Inicialização de
Variáveis
• Declaração de variável:
  • int x;


• Declaração e inicialização de variável:
  • int x = 3;
  • int y, x = 3;
  • int x=3, y;




                                            34
Constantes
• Como uma variável, uma constante também é uma posição de
  memória à qual devem ser associados um identificador e um
  tipo de dado.
• O que caracteriza uma constante é o fato de que o conteúdo
  de uma constante não pode ser modificado durante a
  execução do programa.
• Este conteúdo é fixado quando da declaração da constante o
  que deve ser feito de acordo com a seguinte sintaxe:

  • const Tipo de Dado Identificador = Valor;


                                                               35
Variáveis Locais
• São aquelas declaradas dentro de uma função. Exemplo:

main()
{
  void funcao1(void)
  {
        int x;
        x=10;
    }
    void funcao2(void)
    {
        int x;
        x=10;
    }                                                     36
}
Variáveis Locais
Esta declaração está correta?

void funcao(void)
{
    int i;
    i = 10;
    int j;
    j = 20;
}


                                37
Variáveis Locais
Void funcao(void)
{
    Int i;
    Int j;
    I = 10;
    J = 20;
}




                    38
Saída de dados
• Utilizar a biblioteca stdio.h para entrar e sair com dados.
    • printf(“expressão de controle”, argumentos);
• Exemplos:
main()
{
    printf(“este é o comando de saída de dados”);
    printf(“Este é o número dois: %d”, 2);
    printf(“%s está a %d milhões de milhas n do sol”, ”Vênus”, 67);
    printf(“a letra %c ”, ‘j’);
    printf(“pronuncia-se %s.”, “jota”);
}
                                                                       39
Saída de dados
• Tamanho de campos na impressão:
  • printf(“ n %2d ” , 350);
• Para arredondamento:
  • printf(“ n %4.2f ” , 3456.78 );
• Para alinhamento:
  • printf(“ n %10.2f %10.2f %10.2f ”, 8.0, 15.3, 584.13);
• Complemento de zeros a esquerda;
  • printf(“ n %04d ” , 21);
• Impressão de caracteres:
  • printf(“ %d %c %x %o n ” , ‘A’, ‘A’, ‘A’, ‘A’);

                                                              40
Exemplos
main(){
  int num;
  num = 2;
  printf(“este é o número dois: %d”, num);
}
main(){
  int evento;
  char corrida;
  float tempo;
  evento = 5;
  corrida = ‘c’;
  tempo = 27.25;
  printf(“o tempo vitorioso na eliminatoria %c”, corrida);
  printf(“n da competicao %d foi %.2f.”, evento, tempo);
                                                             41
}
Exemplos
main(){
  unsigned int j=65000;
  int i=j;
  printf(“%d %u n”, i, j);
}
main(){
  int reajuste = 10;
  printf(“o reajuste foi de %d%%. n”, reajuste);
}
main(){
  printf(“os alunos são %2d. n”, 350);
  printf(“os alunos são %4d. n”, 350);
  printf(“os alunos são %6d. n”, 350);             42
}
Código de formatação das
funções de entrada e saída
n   Nova linha         %c   Caractere simples
t   Tab                %d   Decimal
b   Retrocesso         %e   Notação cientifica
”   Aspas              %f   Ponto flutuante
   Barra              %o   Octal
f   Salta formulário   %s   Cadeia de caracteres
0   nulo               %u   Decimal sem sinal
                        %x   Hexadecimal


                                                    43
Entrada de dados
• Utilizar a biblioteca stdio.h para entrar e sair com dados.
   • scanf(“expressão de controle”, argumentos);
   • scanf(“ %_ ”, &);
• Argumentos: deve consistir nos endereços das variáveis. A
  linguagem C oferece um operador para tipos básicos chamado
  operador de endereço e referenciado pelo símbolo & que
  retorna o endereço do operando.
• Exemplos:
main() {
       int num;
       num = 2;
       scanf(“ %d ” , &num);                                    44
   }
Entrada de dados
• Um endereço de memória é visto como um número inteiro
  sem sinal, por isso usamos %u;
• A saída deste programa varia conforme a máquina e a
  memória do equipamento, um exemplo é:

• Valor = 2
• Endereço = 1370




                                                          45
Exemplos
main(){
  float anos, dias;
  printf(“digite sua idade em anos: ”);
  scanf(“%f”, &anos);
  dias = anos * 365;
  printf(“sua idade em dias é %.0f .n”, dias);
}
main(){
  char a;
  printf(“digite um caractere e veja-o em decimal, ”);
  printf(“octal e hexadecimal .n”);
  scanf(“%c”,&a);
  printf(“n %c=%d . , %o oct. e %x hex. n”, a, a, a, a);   46
}
Mais Exemplos
main(){
  printf(“%4.2f n”, 3456.78);
  printf(“%3.2f n”, 3456.78);
  printf(“%3.1f n”, 3456.78);
  printf(“%10.3f n”, 3456.78);
}
main(){
  printf(“%.2f %2f %2f n”, 8.0, 15.3, 584.13);
  printf(“%.2f %2f %2f n”, 834.0, 1500.55, 4890.21);
}
main(){
  printf(“-%10.2f -%10.2f -%10.2f n”, 8.0, 15.3, 584.13);
  printf(“-%10.2f -%10.2f -%10.2f n”, 834.0, 1500.55, 4890.21);   47
  }
Operador de atribuição
• O Operador de atribuição em C é o sinal de igual =

• Ao contrário de outras linguagens, o operador de atribuição
  pode ser utilizado em expressões que também envolvem
  outros operadores.




                                                                48
Operadores aritméticos

         +    Soma
         -    Subtração
         *    Multiplicação
         /    Divisão
         %    Resto da divisão
         ++   Incremento
         --   decremento


                                 49
Expressões com operadores
aritméticos

     x = x + k;   x + = k;
     x = x – k;   x - = k;
     x=x*k;       x * = k;
     x = x / k;   x / = k;
     x = x % k;   x % = k;



                             50
Exemplos
main(){
  int ftemp, ctemp;
  printf(“digite a temperatura em graus fahrenheit: ”);
  scanf(“%d”, &ftemp);
  ctemp=(ftemp-32)*5/9;
  printf(“temperatura em graus celsius é %d”, ctemp);
}
main(){
  int ftemp;
  printf(“digite temperatura em graus fahrenheit:”);
  scanf(“%d”, &ftemp);
  printf(“temper. em graus celsius é %d”, (f-temp-32)* 5/9);   51
}
Exemplos
main(){
  int x, r;
  printf(“digite um numero de até 4 algarismos n”);
  scanf(“%d”, &x);
  r = 19998 + x;
  printf(“o resultado da nossa conta sera: %d n”, r);
  printf(“digite o segundo numero (4 algarismos) n”);
  scanf(“%d”, &x);
  printf(“o meu numero e: %d n”, 9999-x);
  printf(“digite o quarto numero (4 algarismos) n”);
  scanf(“%d”, &x);
  printf(“o meu numero e: %d n”, 9999-x);               52
}
Operadores relacionais

       >    Maior que
       <    Menor que
       >=   Maior ou igual que
       <=   Menor ou igual que
       ==   Igual
       !=   Diferente



                                 53
Expressões com Operadores
relacionais
• x>y
  • Suponha x = 5 e y = 3.
  • 5 > 3 (5 é maior que 3? Sim, verdade)
  • Suponha x = 3 e y = 5.
  • 3 > 5 (3 é maior que 5? Não, falso)

• x<y
  • Suponha x = 5 e y = 3.
  • 5 < 3 (5 é menor que 3? Não, Falso)
  • Suponha x = 3 e y = 5.
  • 3 < 5 (3 é menor que 5? Sim, verdadeiro)
                                               54
Exemplos
main(){
  int verdad, falso;
  verdad = (15<20);
  falso = (15 == 20);
  printf(“verdadeiro = %d, falso = %d n”, verdad, falso);
}
main(){
  int veloc;
  veloc = 75;
  printf(“n a velocidade é igual a 55 ? %d”, veloc==55);
  veloc = 55;
  printf(“n a velocidade é igual a 55 ? %d”, veloc==55);    55
}
Operadores lógicos
                                 Tabela and – e
  &&               And – e   1         1      1
  ||               Or – ou   1         0      0
   !            Not – não    0         1      0
                             0         0      0


                             Tabela or - ou
Tabela not – nao             1        1      1
  1         0                1        0      1
  0         1
                             0        1      1
                             0        0      0
                                                  56
Operadores bit a bit
&    And                       Tabela verdade E
|    Or                        Tabela verdade OU
^    Or exclusive              Tabela OU exclusivo
~    Complemento de um
>>   Deslocamento à esquerda
<<   Deslocamento à direita


Operadores bit a bit referem-se a testar, atribuir ou deslocar os
bit efeitvos em um byte ou em uma palavra, que corresondem
aos tipos de dados char e int e suas variantes.
                                                                    57
Operador unário -
• É usado somente para indicar troca de sinal algébrico do
  valor. Pode também multiplicar o valor do operando por -1.

• Exemplo:
  • num = -10;
  • num = - num;




                                                               58
Operador ternário ?
• Expressão1 ? Expressão2 : Expressão3;

•   Y = x>9 ? 100 : 200;
•   Y recebe o valor 100
•   Se x for menor que 9, y recebe o valor 200
•   O operador ternário funciona da seguinte forma:
     • a expressão1 é avaliada, se ela for verdadeira, então a
       expressão2 é avaliada e se torna o valor da expressão;
       caso contrário a expressão3 é avaliada e torna-se o valor
       da expressão.
                                                                   59
Incremento ++ e decremento --
•   ++ soma 1 ao seu operando
•   -- subtrai um ao seu operando
•   x = x + 1 é igual a ++x ou x++;
•   x= x – 1 é igual a - - x ou x - - ;

•   Exemplo:
•   x = 10;
•   y = ++x; primeiro incrementa depois usa o valor
•   y = x++; primeiro usa o valor e depois incrementa

• Em ambos o caso y receberá 11, entretanto a diferença está   60
  em quando isso acontece
Prioridade/precedência
       Mais alta          ( ) [ ] ->
                    ! ~ ++ -- - * & sizeof
                            */%
                             +-
                           << >>
                         < <= > >=
                            == !=
                              &
                              ^
                              !
                             &&
                              !!
                             ?:
                                             61
                       = += -= *= /=
       Mais baixa             .
Mais exemplos
main()
{
  char c;
  unsigned char uc;
  int i;
  unsigned int ui;
  float f;
  double d;
  printf("char %d",sizeof(c));
  printf("unsigned char %d",sizeof(uc));
  printf("int %d",sizeof(i));
  printf("unsigned int %d",sizeof(ui));
  printf("float %d",sizeof(f));
  printf("double %d",sizeof(d));
}                                          62
Mais exemplos
main()
{
    int x,y; x=10; y=3;
    printf("%dn",x/y);
    printf("%dn",x%y);
}
main()
{
    int x=2,y=3,produto;
    if ((produto=x*y)>0) printf("é maior");
}
                                              63
Mais exemplos
main()
{
    int i,j;
    printf("digite dois números: ");
    scanf("%d%d",&i,&j);
    printf("%d == %d é %dn",i,j,i==j);
    printf("%d != %d é %dn",i,j,i!=j);
    printf("%d <= %d é %dn",i,j,i<=j);
    printf("%d >= %d é %dn",i,j,i>=j);
    printf("%d < %d é %dn",i,j,i< j);
    printf("%d > %d é %dn",i,j,i> j);
}                                         64
Mais exemplos
main()
{
    int x=0;
    printf("x= %dn",x++);
    printf("x= %dn",x);
    printf("x= %dn",++x);
    printf("x= %dn",x);
}
main()
{
    int i=1;
    printf("%d/3 é: %f",i,(float) i/3);
                                          65
}
Mais exemplos
#include <stdio.h>
main()
{
    float a, b, c;
    printf("Digite três números");
    scanf("%f %f %f", &a, &b, &c);
    printf("A media dos numeros %f , %f e %f é igual a %f", a, b, c, (a + b
    + c)/3);
}


                                                                              66
Mais exemplos
/* Programa que inverte um número com dois algarismos */
#include <stdio.h>
main()
{
    int Num, Unidades, Dezenas, Invertido;
    printf("Digite um inteiro com dois algarismos");
    scanf("%d", &Num);
    Unidades = Num % 10;
    Dezenas = Num/10;
    Invertido = Unidades * 10 + Dezenas;
    printf("O invertido de %d e' %d ", Num, Invertido);
                                                           67
}
Mais exemplos
/*Programa que determina o menor múltiplo de um inteiro maior
que outro inteiro*/
#include <stdio.h>
main()
{
   int Num, Divisor, MenMultiplo;
   printf("Digite o inteiro do qual o número procurado deve ser múltiplo");
   scanf("%d", &Divisor);
   printf("Digite o inteiro que deve ser menor que o múltiplo n");
   scanf("%d", &Num);
   MenMultiplo = Num - Num % Divisor + Divisor;
   printf("O menor multiplo de %d maior do que %d e' %d n", Divisor,
   Num, MenMultiplo);
}                                                                             68
Mais exemplos
/*Programa que determina o número de múltiplos de um inteiro k
situados entre dois inteiros x e y*/
#include <stdio.h>
main()
{
    int i, x, y, a, k, NumMultiplos =
    0;
    printf("Digite os inteiros x e y (y > x)");
    scanf("%d %d", &x, &y);
    a = y - 1;
    printf("Digite o inteiro k n");
    scanf("%d", &k);
    NumMultiplos = (a - a % k - x + x % k)/k;
    printf("O número de multiplos de %d compreendidos entre %d e %d e' %d n",
    k, x, y,
    NumMultiplos);
}                                                                                69
Mais exemplos
/* Programa que fornece a parte fracionária de um número
dado */
#include <stdio.h>
main()
{
    float Num, Frac;
    int Inteiro;
    printf("Digite um numero ");
    scanf("%f", &Num);
    Inteiro = Num;
    Frac = Num - Inteiro;
    printf("A parte fracionaria de %f e' %f ", Num, Frac);
}                                                            70

Mais conteúdo relacionado

Mais procurados

Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
Plp aula-01-apresentação
Plp aula-01-apresentaçãoPlp aula-01-apresentação
Plp aula-01-apresentaçãoJosé Meirelles
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de ProgramaçãoNatanael Simões
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Programação 1
Programação 1Programação 1
Programação 1essa
 

Mais procurados (19)

Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Plp aula-01-apresentação
Plp aula-01-apresentaçãoPlp aula-01-apresentação
Plp aula-01-apresentação
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de Programação
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Java com Excelência
Java com ExcelênciaJava com Excelência
Java com Excelência
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Seminário: C
Seminário: CSeminário: C
Seminário: C
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Pi1415 tudo
Pi1415 tudoPi1415 tudo
Pi1415 tudo
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Programação 1
Programação 1Programação 1
Programação 1
 

Semelhante a Aula 1 pc - slides

Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoRobson Ferreira
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfAthena542429
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaIvna Valença
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Thyago Maia
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreHelton Ritter
 
Ementa informática 2011
Ementa informática 2011Ementa informática 2011
Ementa informática 2011Willian Ribeiro
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfAmlieOGalaxias
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionaisRobson Ferreira
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1D M
 

Semelhante a Aula 1 pc - slides (20)

Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentação
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
Ementa tec informatica
Ementa tec informaticaEmenta tec informatica
Ementa tec informatica
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação Imperativa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
 
Ementa informática 2011
Ementa informática 2011Ementa informática 2011
Ementa informática 2011
 
Cursos Season
Cursos SeasonCursos Season
Cursos Season
 
Cursos Season
Cursos Season Cursos Season
Cursos Season
 
Csharp
CsharpCsharp
Csharp
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionais
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Aula 1 pc - slides

  • 1. Programação de Computadores Aula 1 02/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 1: Apresentação da Disciplina e Introdução à Linguagem C Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coraçã – USC Bauru/SP
  • 2. Informações da disciplina • Carga Horária Total: 72 horas • Carga Horária Prática: 36 horas • Carga Horária Teórica: 36 horas • Pré-requisitos: Algoritmos e estrutura de dados • Competências da disciplina: Análise de problemas e projeção de soluções que requeiram uma combinação de hardware e software; Domínio dos aspectos técnicos de sua área de atuação; Projeto e construção de software usando a linguagem C. 2
  • 3. Ementa • História e evolução da linguagem C; • Características da linguagem C; • Sintaxe da linguagem C; • Variáveis; operadores; tipos de dados; identificadores; palavras reservadas; bibliotecas; entrada e saída; estrutura básica de um programa em C; incremento e decremento; • Estruturas condicionais e de repetição; vetores e matrizes; registros; manipulação de strings e arquivos; macros; funções; ponteiros; estruturas de dados, classes de variáveis; tipos de chamadas; alocação dinâmica. 3
  • 4. Objetivos • Aplicar técnicas de programação para manipulação de registros, arquivos, ordenação e estruturação de dados; • Utilizar corretamente os comandos de programação da linguagem C; 4
  • 5. Conteúdo Programático UNIDADE 1 – APRESENTAÇÃO DA DISCIPLINA E INTRODUÇÃO À LINGUAGEM C (4h) • História da linguagem C; • Visão geral da linguagem C; • Expressões em C; • Tipos de dados; • Identificadores; • Variáveis; • Modificadores de acesso; • Especificadores; • Constantes; 5 • Operadores.
  • 6. Conteúdo Programático UNIDADE 2 – COMANDOS DE CONTROLE DE PROGRAMA (4h) • Seleção; • Decisão; • Repetição; • Condição; • Iteração. 6
  • 7. Conteúdo Programático UNIDADE 3 – FUNÇÕES (4h) • Funções e estrutura de programas; • Funções que retornam valor; • Passando dados para a função chamada; • Funções não inteiras; • Argumentos de funções: • Chamada por valor • Chamada por referência; • Protótipos de funções. 7
  • 8. Conteúdo Programático UNIDADE 4 – VETORES, MATRIZES E STRINGS (8h) • Vetores em C; • Matrizes unidimensionais; • Matrizes bidimensionais; • Matrizes multidimensionais; • Matrizes como argumentos de funções; • Strings constantes e variáveis strings; • Funções de strings: Scanf(), gets(), puts(),strlen(), strcat(), strcmp(), strcpy(); • Matriz de strings. 8
  • 9. Conteúdo Programático UNIDADE 5 – PONTEIROS (4h) • Variáveis; • Operadores; • Expressões; • Matrizes; • Funções; • Alocação dinâmica. 9
  • 10. Conteúdo Programático UNIDADE 6 – ESTRUTURAS, UNIÕES, ENUMERAÇÕES E TIPOS DEFINIDOS PELO USUÁRIO (8h) • Estruturas; • Matrizes de estruturas; • Ponteiros para estruturas; • Campos de bits; • Uniões; • Enumerações; • Sizeof; • Typedef. 10
  • 11. Conteúdo Programático UNIDADE 7 – ENTRADA E SAÍDA (4h) • Console; • Lendo e escrevendo caracteres; • Lendo e escrevendo strings; • E/S formatada pelo console; • printf() e scanf(); • Arquivo; • Streams e Arquivos; • Fundamentos de sistema de arquivos; 11 • Streams padrão.
  • 12. Conteúdo Programático UNIDADE 8 – PRÉ-PROCESSADOR (4h) • #define, #error e #include; • Diretivas e Defined; • #line e #pragma; • Macros; • Linkedição; • Bibliotecas; • Arquivos de cabeçalho; • Biblioteca padrão C. 12
  • 13. Conteúdo Programático UNIDADE 9 – ORDENAÇÃO E PESQUISA (4h) • Seleção, Inserção, Shell e Quicksort; • Ordenações melhores; • Ordenação de strings e Ordenação de estruturas; • Métodos de pesquisa; • Pesquisa seqüencial e Pesquisa binária. 13
  • 14. Conteúdo Programático UNIDADE 10 – ESTRUTURA DE DADOS (8h) • Filas; • Pilhas; • Listas; • Árvores; • Grafos; • Recursividade. 14
  • 15. Conteúdo Programático UNIDADE 11 – FUNÇÕES DE C (4h) • Matemáticas; • Hora e data; • Gráficas e textuais; • Miscelâneas; 15
  • 16. Conteúdo Programático UNIDADE 12 – EFICIÊNCIA, PORTABILIDADE E DEPURAÇÃO (4h) • Operadores de incremento e decremento; • Variáveis em registradores; • Ponteiros e indexação de matrizes; • Programas portáveis; • Depuração e Erros; • Problemas e Colisões; • Manutenção de programas; 16
  • 17. Metodologia Atividades Metodológicas: • Aulas expositivas e dialogadas; • Atividades práticas utilizando o computador, softwares específicos e Internet; • Questionamentos orais e escritos (Quiz); • Elaboração de resumos; • Resolução de problemas; • Investigação de conceitos; • Seminários. 17
  • 18. Metodologia Recursos didáticos: • Laboratórios; • Textos; • Projetor multimídia; • Notebook; • Softwares; • Plataforma Moodle Tecnológico; • Software DevC; 18
  • 19. Avaliação Instrumento Objetivo Contexto Valor – Peso Conceitual Prova P1 Individual 35% Procedimental Conceitual Prova P2 Individual 35% Procedimental Individual Trabalhos Procedimental 10% Coletivo Atitudinal Seminários Individual 10% Conceitual Atitudinal Individual Quiz 10% Procedimental Coletivo 19
  • 20. Bibliografia Básica • MIZRAHI, Victorine Viviane. Treinamento em linguagem C. 2ª Edição. São Paulo: Editora Prentice Hall, 2008. • MANZANO, José Augusto N. G. Estudo Dirigido de Linguagem C. 13.ª Edição. Editora Érica. • SCHILDT, Herbert. C completo e total. 3ª Edição. São Paulo: Editora Makron Books. 20
  • 21. Bibliografia Complementar • Instituto Brasileiro em Informática. Dominando a linguagem C. Rio de Janeiro: IBPI, 1993.. • SCHILDT, Herbert. Linguagem C: guia do usuário. Rio de Janeiro: McGraw-Hill, 1986. • HANCOCK, Lê. Manual de linguagem C. Rio de Janeiro: Campus, 1986. • PUGH, Kenneth. Programando em linguagem C. São Paulo: McGraw-Hill, 1990. • SCHILDT, Herbert. Turbo C avançado: guia do usuário. São Paulo: McGraw-Hill, 1990. 21
  • 22. Grau de Abstração • Linguagens de programação de baixo nível: linguagem de máquina, por exemplo, Assembly. • Linguagens de programação de médio nível: conversão direta para código de máquina, por exemplo, C. • Linguagem de programação de alto nível: fácil para ser humano e complexo para a máquina, por exemplo, Java. 22
  • 23. Paradigmas de Linguagens de Programação • Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa. Os principais paradigmas de linguagens de programação são: • Linguagem Funcional: trata a computação como uma avaliação de funções matemáticas, por exemplo, LISP. • Programação Lógica: faz uso da lógica matemática, por exemplo, PROLOG. • Programação Imperativa: • Programação Estruturada: ou programação modular, por exemplo, PASCAL. • Orientação a Objetos: abstração de conceitos do mundo real, por exemplo, JAVA. 23
  • 24. Interpretação X Compilação • Um programa é uma forma de comunicação com o computador e, sabemos que, a única linguagem que o computador entende, é a linguagem de máquina. • Assim, todos os programas devem estar em linguagem de máquina e, para isso, eles devem ser traduzidos. A tradução tem duas categorias: interpretação e compilação. • A criação de um programa consiste na conversão do código fonte para códigos de linguagem de máquina. Esta “transformação” pode ocorrer antes ou durante a execução. • Caso ocorra antes da execução o processo é chamado de compilação – normalmente gera um arquivo executável. • Caso ocorra durante a execução o processo é chamado de 24 interpretação – HTML é um bom exemplo de linguagem interpretada.
  • 25. Interpretação X Compilação • Um interpretador lê o código fonte do seu programa uma linha por vez, executando a instrução específica contida nessa linha.. • Um compilador lê o programa inteiro e converte-o em um código-objeto, que é uma tradução do código-fonte do programa em uma forma que o computador possa executar diretamente. • Um programa interpretado precisa do seu interpretador instalado na máquina em que será executado. • Um programa compilado é independente. 25
  • 26. História da Linguagem C • Criada por Dennis Ritchie, 1972, centro de pesquisas da Bell Laboratories; • 1ª utilização: reescrita do sistema operacional UNIX; • 1980: vários compiladores C disponíveis; • Linguagem imperativa de propósito geral; • Algumas características: • Portabilidade; • Geração de código eficiente; • Simplicidade; • Facilidade de uso; • Observação: C é case sensitive 26
  • 27. Estrutura do Programa /* Estrutura de um programa int função_1 (variáveis) em C */ { # include declaração de variáveis <arquivo_cabecalho.h> instrução_1; main ( ) instrução_2; { - declaração de variáveis - instrução_1; return (INT); instrução_2; } função_1(variáveis); instrução_3; - - } 27
  • 28. Tipos de dados em C • char – caractere • int – inteiros • float – reais • double – flutuante • void – função que não retorna valor 28
  • 29. Modificadores de tipos de dados • Modificadores são usados para alterar o significado de um tipo básico para adaptá-lo mais precisamente às necessidades de diversas situações. • Para Caractere e Inteiro: • signed – com sinal • unsigned – sem sinal • long – longo • short – curto • Para double: • long 29
  • 30. Todos os tipos de dados Tipo Bits Faixa char 8 - 127 a 127 unsigned char 8 0 a 255 signed char 8 -127 a 127 int 16 -32.767 a 32.767 unsigned int 16 0 a 65.535 signed int 16 -32.767 a 32.767 short int 16 -32.767 a 32.767 unsigned short int 16 0 a 65.535 signed short int 16 -32.767 a 32.767 long int 32 -2.147.483.647 a 2.147.483.647 signed long int 32 -2.147.483.647 a 2.147.483.647 unsigned long int 32 0 a 4.294.967.295 float 32 Seis dígitos de precisão 30 double 64 Dez dígitos de precisão long double 80 Dez dígitos de precisão
  • 31. Identificadores • São nomes usados para se fazer referência a variáveis, funções, rótulos e outros objetos definidos pelo usuário; • int X; • int _X; • É diferente de: • int x; • int _x; • Dicas: • Um programa deve ser legível para outros programadores; • Escolher identificadores intuitivos, por exemplo, se uma variável deve armazenar uma soma, um identificador muito bom para ela será Soma. 31
  • 33. Variáveis • Variável é uma posição de memória cujo conteúdo pode ser modificado durante a execução de um programa. A referência a uma variável no programa é feita através do seu identificador. Os valores que podem ser nela armazenados dependem do seu tipo de dado. • Sintaxe: • tipo identificador; • int x; • int é o tipo e x é o identificador; 33
  • 34. Declaração e Inicialização de Variáveis • Declaração de variável: • int x; • Declaração e inicialização de variável: • int x = 3; • int y, x = 3; • int x=3, y; 34
  • 35. Constantes • Como uma variável, uma constante também é uma posição de memória à qual devem ser associados um identificador e um tipo de dado. • O que caracteriza uma constante é o fato de que o conteúdo de uma constante não pode ser modificado durante a execução do programa. • Este conteúdo é fixado quando da declaração da constante o que deve ser feito de acordo com a seguinte sintaxe: • const Tipo de Dado Identificador = Valor; 35
  • 36. Variáveis Locais • São aquelas declaradas dentro de uma função. Exemplo: main() { void funcao1(void) { int x; x=10; } void funcao2(void) { int x; x=10; } 36 }
  • 37. Variáveis Locais Esta declaração está correta? void funcao(void) { int i; i = 10; int j; j = 20; } 37
  • 38. Variáveis Locais Void funcao(void) { Int i; Int j; I = 10; J = 20; } 38
  • 39. Saída de dados • Utilizar a biblioteca stdio.h para entrar e sair com dados. • printf(“expressão de controle”, argumentos); • Exemplos: main() { printf(“este é o comando de saída de dados”); printf(“Este é o número dois: %d”, 2); printf(“%s está a %d milhões de milhas n do sol”, ”Vênus”, 67); printf(“a letra %c ”, ‘j’); printf(“pronuncia-se %s.”, “jota”); } 39
  • 40. Saída de dados • Tamanho de campos na impressão: • printf(“ n %2d ” , 350); • Para arredondamento: • printf(“ n %4.2f ” , 3456.78 ); • Para alinhamento: • printf(“ n %10.2f %10.2f %10.2f ”, 8.0, 15.3, 584.13); • Complemento de zeros a esquerda; • printf(“ n %04d ” , 21); • Impressão de caracteres: • printf(“ %d %c %x %o n ” , ‘A’, ‘A’, ‘A’, ‘A’); 40
  • 41. Exemplos main(){ int num; num = 2; printf(“este é o número dois: %d”, num); } main(){ int evento; char corrida; float tempo; evento = 5; corrida = ‘c’; tempo = 27.25; printf(“o tempo vitorioso na eliminatoria %c”, corrida); printf(“n da competicao %d foi %.2f.”, evento, tempo); 41 }
  • 42. Exemplos main(){ unsigned int j=65000; int i=j; printf(“%d %u n”, i, j); } main(){ int reajuste = 10; printf(“o reajuste foi de %d%%. n”, reajuste); } main(){ printf(“os alunos são %2d. n”, 350); printf(“os alunos são %4d. n”, 350); printf(“os alunos são %6d. n”, 350); 42 }
  • 43. Código de formatação das funções de entrada e saída n Nova linha %c Caractere simples t Tab %d Decimal b Retrocesso %e Notação cientifica ” Aspas %f Ponto flutuante Barra %o Octal f Salta formulário %s Cadeia de caracteres 0 nulo %u Decimal sem sinal %x Hexadecimal 43
  • 44. Entrada de dados • Utilizar a biblioteca stdio.h para entrar e sair com dados. • scanf(“expressão de controle”, argumentos); • scanf(“ %_ ”, &); • Argumentos: deve consistir nos endereços das variáveis. A linguagem C oferece um operador para tipos básicos chamado operador de endereço e referenciado pelo símbolo & que retorna o endereço do operando. • Exemplos: main() { int num; num = 2; scanf(“ %d ” , &num); 44 }
  • 45. Entrada de dados • Um endereço de memória é visto como um número inteiro sem sinal, por isso usamos %u; • A saída deste programa varia conforme a máquina e a memória do equipamento, um exemplo é: • Valor = 2 • Endereço = 1370 45
  • 46. Exemplos main(){ float anos, dias; printf(“digite sua idade em anos: ”); scanf(“%f”, &anos); dias = anos * 365; printf(“sua idade em dias é %.0f .n”, dias); } main(){ char a; printf(“digite um caractere e veja-o em decimal, ”); printf(“octal e hexadecimal .n”); scanf(“%c”,&a); printf(“n %c=%d . , %o oct. e %x hex. n”, a, a, a, a); 46 }
  • 47. Mais Exemplos main(){ printf(“%4.2f n”, 3456.78); printf(“%3.2f n”, 3456.78); printf(“%3.1f n”, 3456.78); printf(“%10.3f n”, 3456.78); } main(){ printf(“%.2f %2f %2f n”, 8.0, 15.3, 584.13); printf(“%.2f %2f %2f n”, 834.0, 1500.55, 4890.21); } main(){ printf(“-%10.2f -%10.2f -%10.2f n”, 8.0, 15.3, 584.13); printf(“-%10.2f -%10.2f -%10.2f n”, 834.0, 1500.55, 4890.21); 47 }
  • 48. Operador de atribuição • O Operador de atribuição em C é o sinal de igual = • Ao contrário de outras linguagens, o operador de atribuição pode ser utilizado em expressões que também envolvem outros operadores. 48
  • 49. Operadores aritméticos + Soma - Subtração * Multiplicação / Divisão % Resto da divisão ++ Incremento -- decremento 49
  • 50. Expressões com operadores aritméticos x = x + k; x + = k; x = x – k; x - = k; x=x*k; x * = k; x = x / k; x / = k; x = x % k; x % = k; 50
  • 51. Exemplos main(){ int ftemp, ctemp; printf(“digite a temperatura em graus fahrenheit: ”); scanf(“%d”, &ftemp); ctemp=(ftemp-32)*5/9; printf(“temperatura em graus celsius é %d”, ctemp); } main(){ int ftemp; printf(“digite temperatura em graus fahrenheit:”); scanf(“%d”, &ftemp); printf(“temper. em graus celsius é %d”, (f-temp-32)* 5/9); 51 }
  • 52. Exemplos main(){ int x, r; printf(“digite um numero de até 4 algarismos n”); scanf(“%d”, &x); r = 19998 + x; printf(“o resultado da nossa conta sera: %d n”, r); printf(“digite o segundo numero (4 algarismos) n”); scanf(“%d”, &x); printf(“o meu numero e: %d n”, 9999-x); printf(“digite o quarto numero (4 algarismos) n”); scanf(“%d”, &x); printf(“o meu numero e: %d n”, 9999-x); 52 }
  • 53. Operadores relacionais > Maior que < Menor que >= Maior ou igual que <= Menor ou igual que == Igual != Diferente 53
  • 54. Expressões com Operadores relacionais • x>y • Suponha x = 5 e y = 3. • 5 > 3 (5 é maior que 3? Sim, verdade) • Suponha x = 3 e y = 5. • 3 > 5 (3 é maior que 5? Não, falso) • x<y • Suponha x = 5 e y = 3. • 5 < 3 (5 é menor que 3? Não, Falso) • Suponha x = 3 e y = 5. • 3 < 5 (3 é menor que 5? Sim, verdadeiro) 54
  • 55. Exemplos main(){ int verdad, falso; verdad = (15<20); falso = (15 == 20); printf(“verdadeiro = %d, falso = %d n”, verdad, falso); } main(){ int veloc; veloc = 75; printf(“n a velocidade é igual a 55 ? %d”, veloc==55); veloc = 55; printf(“n a velocidade é igual a 55 ? %d”, veloc==55); 55 }
  • 56. Operadores lógicos Tabela and – e && And – e 1 1 1 || Or – ou 1 0 0 ! Not – não 0 1 0 0 0 0 Tabela or - ou Tabela not – nao 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 56
  • 57. Operadores bit a bit & And Tabela verdade E | Or Tabela verdade OU ^ Or exclusive Tabela OU exclusivo ~ Complemento de um >> Deslocamento à esquerda << Deslocamento à direita Operadores bit a bit referem-se a testar, atribuir ou deslocar os bit efeitvos em um byte ou em uma palavra, que corresondem aos tipos de dados char e int e suas variantes. 57
  • 58. Operador unário - • É usado somente para indicar troca de sinal algébrico do valor. Pode também multiplicar o valor do operando por -1. • Exemplo: • num = -10; • num = - num; 58
  • 59. Operador ternário ? • Expressão1 ? Expressão2 : Expressão3; • Y = x>9 ? 100 : 200; • Y recebe o valor 100 • Se x for menor que 9, y recebe o valor 200 • O operador ternário funciona da seguinte forma: • a expressão1 é avaliada, se ela for verdadeira, então a expressão2 é avaliada e se torna o valor da expressão; caso contrário a expressão3 é avaliada e torna-se o valor da expressão. 59
  • 60. Incremento ++ e decremento -- • ++ soma 1 ao seu operando • -- subtrai um ao seu operando • x = x + 1 é igual a ++x ou x++; • x= x – 1 é igual a - - x ou x - - ; • Exemplo: • x = 10; • y = ++x; primeiro incrementa depois usa o valor • y = x++; primeiro usa o valor e depois incrementa • Em ambos o caso y receberá 11, entretanto a diferença está 60 em quando isso acontece
  • 61. Prioridade/precedência Mais alta ( ) [ ] -> ! ~ ++ -- - * & sizeof */% +- << >> < <= > >= == != & ^ ! && !! ?: 61 = += -= *= /= Mais baixa .
  • 62. Mais exemplos main() { char c; unsigned char uc; int i; unsigned int ui; float f; double d; printf("char %d",sizeof(c)); printf("unsigned char %d",sizeof(uc)); printf("int %d",sizeof(i)); printf("unsigned int %d",sizeof(ui)); printf("float %d",sizeof(f)); printf("double %d",sizeof(d)); } 62
  • 63. Mais exemplos main() { int x,y; x=10; y=3; printf("%dn",x/y); printf("%dn",x%y); } main() { int x=2,y=3,produto; if ((produto=x*y)>0) printf("é maior"); } 63
  • 64. Mais exemplos main() { int i,j; printf("digite dois números: "); scanf("%d%d",&i,&j); printf("%d == %d é %dn",i,j,i==j); printf("%d != %d é %dn",i,j,i!=j); printf("%d <= %d é %dn",i,j,i<=j); printf("%d >= %d é %dn",i,j,i>=j); printf("%d < %d é %dn",i,j,i< j); printf("%d > %d é %dn",i,j,i> j); } 64
  • 65. Mais exemplos main() { int x=0; printf("x= %dn",x++); printf("x= %dn",x); printf("x= %dn",++x); printf("x= %dn",x); } main() { int i=1; printf("%d/3 é: %f",i,(float) i/3); 65 }
  • 66. Mais exemplos #include <stdio.h> main() { float a, b, c; printf("Digite três números"); scanf("%f %f %f", &a, &b, &c); printf("A media dos numeros %f , %f e %f é igual a %f", a, b, c, (a + b + c)/3); } 66
  • 67. Mais exemplos /* Programa que inverte um número com dois algarismos */ #include <stdio.h> main() { int Num, Unidades, Dezenas, Invertido; printf("Digite um inteiro com dois algarismos"); scanf("%d", &Num); Unidades = Num % 10; Dezenas = Num/10; Invertido = Unidades * 10 + Dezenas; printf("O invertido de %d e' %d ", Num, Invertido); 67 }
  • 68. Mais exemplos /*Programa que determina o menor múltiplo de um inteiro maior que outro inteiro*/ #include <stdio.h> main() { int Num, Divisor, MenMultiplo; printf("Digite o inteiro do qual o número procurado deve ser múltiplo"); scanf("%d", &Divisor); printf("Digite o inteiro que deve ser menor que o múltiplo n"); scanf("%d", &Num); MenMultiplo = Num - Num % Divisor + Divisor; printf("O menor multiplo de %d maior do que %d e' %d n", Divisor, Num, MenMultiplo); } 68
  • 69. Mais exemplos /*Programa que determina o número de múltiplos de um inteiro k situados entre dois inteiros x e y*/ #include <stdio.h> main() { int i, x, y, a, k, NumMultiplos = 0; printf("Digite os inteiros x e y (y > x)"); scanf("%d %d", &x, &y); a = y - 1; printf("Digite o inteiro k n"); scanf("%d", &k); NumMultiplos = (a - a % k - x + x % k)/k; printf("O número de multiplos de %d compreendidos entre %d e %d e' %d n", k, x, y, NumMultiplos); } 69
  • 70. Mais exemplos /* Programa que fornece a parte fracionária de um número dado */ #include <stdio.h> main() { float Num, Frac; int Inteiro; printf("Digite um numero "); scanf("%f", &Num); Inteiro = Num; Frac = Num - Inteiro; printf("A parte fracionaria de %f e' %f ", Num, Frac); } 70