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

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 eevoluçã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écnicasde 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 • InstitutoBrasileiro 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 Linguagensde 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 LinguagemC • 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 dadosem C • char – caractere • int – inteiros • float – reais • double – flutuante • void – função que não retorna valor 28
  • 29.
    Modificadores de tiposde 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 tiposde 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 nomesusados 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
  • 32.
  • 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çãode 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 umavariá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ãoaquelas 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çãoestá 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(){ intnum; 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(){ unsignedint 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çãodas 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(){ floatanos, 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(){ intftemp, 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(){ intx, 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(){ intverdad, 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 abit & 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 ++ edecremento -- • ++ 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 /* Programaque 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 quedetermina 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 quedetermina 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 /* Programaque 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