Modulo02

Lisandro Michel
Curso C Starter




 www.t2ti.com
                  1
Curso C Starter

Apresentação


       O Curso C Starter foi projetado com o objetivo de ajudar àquelas pessoas que
têm uma base de lógica de programação e desejam aprender a linguagem C.


       A estrutura do curso é formada por módulos em PDF e por mini-cursos em
vídeo. O aluno deve baixar esse material e estudá-lo. Deve realizar os exercícios
propostos. Todas as dúvidas devem ser enviadas para a lista de discussão que está
disponível para inscrição na página do Curso C Starter no site www.t2ti.com. As
dúvidas serão respondidas pelos instrutores Albert Eije, Cláudio de Barros e Miguel
Kojiio, além dos demais participantes da lista.


       Nosso objetivo é que após o estudo do Curso C Starter o aluno tenha as
noções fundamentais da linguagem C e consiga, a partir deste momento, aprofundar-
se no assunto de forma autônoma e de acordo com as suas expectativas.


       Albert Eije trabalha com informática desde 1993. Durante esse período já
trabalhou com várias linguagens de programação: Clipper, PHP, Delphi, C, Java, etc.
Atualmente mantém o site www.alberteije.com e trabalha como analista de sistemas
do Banco do Brasil.


       Cláudio de Barros é Tecnólogo em Processamento de Dados e analista de
sistemas do Banco do Brasil.


       Miguel Kojiio é bacharel em Sistemas de Informação, profissional certificado
Java e também trabalha como analista de sistemas do Banco do Brasil.




                                   www.t2ti.com
                                                                                  2
Curso C Starter


    Módulo


02
                       Conhecendo a Linguagem C
                               Parte II

Constantes


         Vamos começar nosso segundo módulo falando sobre constantes. Já vimos
que podemos ter diversas variáveis no nosso programa. Mas, se precisássemos utilizar
uma variável que não muda de valor? Ou seja, cujo valor seja constante?


         Obseve o programa abaixo:


#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159


main()
{
      float raio = 10.0;
      printf("Area da esfera = %.2f",4*PI*raio*raio);
      system("pause");
}



         Veja que utilizamos uma nova diretiva: #define. Essa diretiva serve para
definirmos nossas constantes. Basta apenas informar o nome da constante, que dever
estar todo em caixa alta e logo após o valor da mesma. Não se informa o tipo de dado
e nem se coloca vírgula ou ponto-e-vírgula.


Vetores


         Alguns autores preferem chamá-los de matrizes. Na verdade um vetor é uma
matriz de uma linha apenas e que pode ter diversas colunas.



                                 www.t2ti.com
                                                                                   3
Curso C Starter

         Para entendermos a necessidade de usarmos vetores vamos diretamente a um
exemplo: digamos que precisamos calcular a média das notas da prova de 5 alunos.
         Observe o programa abaixo:


#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
     float n1,n2,n3,n4,n5;


     printf("Digite a nota do aluno 1: ");
       scanf("%f",&n1);


     printf("Digite a nota do aluno 2: ");
       scanf("%f",&n2);


     printf("Digite a nota do aluno 3: ");
       scanf("%f",&n3);


     printf("Digite a nota do aluno 4: ");
       scanf("%f",&n4);


     printf("Digite a nota do aluno 5: ");
       scanf("%f",&n5);


    printf("Media= %.2f n",(n1+n2+n3+n4+n5)/5);


    system("PAUSE");
    return 0;
}



         O programa funciona com perfeição. Vai ler a nota dos 5 alunos e depois
calcular a sua média. E se precisarmos aumentar o número de alunos para 20? Nosso
programa vai aumentar significativamente não é? Se nosso programa fosse utilizado
para calcular a média de 2000 alunos? Já dá para perceber que a saída acima é
inviável. A solução é utilizarmos um vetor.
         Um vetor é uma série de variáveis do mesmo tipo sendo referenciadas por um
único nome, onde cada variável é diferenciada através de um número chamado


                                  www.t2ti.com
                                                                                   4
Curso C Starter

“subscrito” ou “índice”. Colchetes são utilizados para conter o índice.




         Na figura acima podemos observar um trem com 8 vagões. Esse trem é o
nosso vetor.
         Como faríamos para imprimir o número 5 de nosso vetor? Para termos acesso
ao índice onde o número 5 se encontra teríamos que fazer o seguinte:


         printf(“%d”,vetor[4]);


         Ué? Mas o comando acima não vai imprimir o número 4? Não. Detalhe
importante: em C e em Java um vetor sempre começa do índice zero. Portanto
vetor[0] seria equivalente ao número 1, no exemplo acima.
         Vamos refazer nosso programa para calcular a nota de 5 alunos utilizando o
conceito de vetores.


#include <stdio.h>
#include <stdlib.h>


main()
{
    float notas[5]; //nosso vetor com 5 posições numéricas
    int i;
    float soma = 0.0;


    for(i=0;i<5;i++){
        printf("Digite a nota do aluno %d: ", i+1);
        scanf("%f",&notas[i]);
    }


    for(i=0;i<5;i++)
        soma = soma + notas[i];




                                   www.t2ti.com
                                                                                  5
Curso C Starter

    printf("Media= %.2f n",soma/5);


    system("PAUSE");
    return 0;
}



         Já ficou bem melhor. Nos exercícios você será convidado a melhorar o
programa acima.
         No primeiro laço for nós inserimos os dados dentro do vetor. No segundo laço
for nós pegamos cada um dos valores e acumulamos na variável soma. Por fim,
dividimos soma por 5 para calcular a média dos 5 alunos.
         Vamos a outro exemplo: o usuário fornecerá um valor em Reais. Nosso
programa deve informar o menor número de cédulas possíveis para se chegar ao valor
informado.


         Exemplo: R$ 163,00.


         1 nota de R$ 100,00
         1 nota de R$   50,00
         1 nota de R$   10,00
         1 nota de R$     2,00
         1 nota de R$     1,00


         Veja como fica nosso programa:


#include <stdio.h>
#include <stdlib.h>


main()
{
    int notas[8] = {100, 50, 20, 10, 5, 2, 1};
    int valor, qtde, i;


    printf("Digite o valor para o calculo das notas n");
    scanf("%d",&valor);


    for(i=0;i<7;i++){



                                  www.t2ti.com
                                                                                    6
Curso C Starter

             qtde = valor / notas[i];
             printf("Quantidade de notas de R$%5.d : %d n", notas[i],qtde);
             valor = valor % notas[i];
    }


    system("PAUSE");
}



         O programa acima faz o que é esperado. Tente entender o que está ocorrendo.
Caso haja dúvidas comente sobre o mesmo na lista de discussão.


Vetores Bidimensionais


         Algumas pessoas vão insistir que os vetores bidimensionais devem ser
chamados de matrizes. Dizem que quando existe apenas uma dimensão (um
colchete), aí sim é um vetor. Mas se tiver mais de uma dimensão é uma matriz.
Outros, como já dito, chamam todos os vetores de matrizes. Não se preocupe com
essa terminologia. Em Java essas estruturas são chamadas de Arrays (vetores). É isso
que nos interessa. Para que não haja confusão, continuaremos a chamá-los de vetores
apenas.
         Observe o código abaixo:


# include <stdio.h>
int main()
{
     int t, i, M[3][4];
     for (t=0; t<3; ++t)
          for (i=0; i<4; ++i)
              M[t][i] = (t*4)+i+1;


     for (t=0; t<3; ++t)
     {
          for (i=0; i<4; ++i)
              printf ("%3d ", M[t][i]);
          printf ("n");
     }


     system("pause");



                                    www.t2ti.com
                                                                                   7
Curso C Starter

    return(0);
}



          O código acima cria um vetor de 3 posições. Dentro de cada vetor desses
existe um vetor de 4 posições. É um vetor de vetores.
          Observe que para preenchermos os vetores de dentro precisamos fazer dois
laços for. O primeiro laço vai percorrer o primeiro vetor. A cada índice do primeiro
vetor o segundo laço for entra em ação para preencher os seus elementos.
          Após preencher todos os elementos existe outro laço for que imprime os
elementos desse vetor bidimensional. Poderia dizer quais elementos serão impressos
apenas olhando para o código acima? Tente fazer isso antes de implementar e
executar o código. Comente sobre o código na lista de discussão caso reste alguma
dúvida.


Vetores como Parâmetros de Funções


          Você deve se recordar que utilizamos funções e passamos parâmetros para as
mesmas. Também podemos passar um vetor como parâmetro para uma função.
Observe na prática como isso ocorre:


# include <stdio.h>
int main()
{


      int maior(int num[]); //declaracao da funcao dentro de main


      int num[6],i;
      printf("digite 5 numeros para o calculo do maior n");


      for(i=0;i<5;i++){
              scanf("%d",&num[i]);
      }


      printf("O maior numero do vetor eh: %d n",maior(num));


      system("pause");
      return(0);
}


                                  www.t2ti.com
                                                                                   8
Curso C Starter


int maior(int num[])
{
        int i,num_maior=0;
        for(i=0;i<5;i++){
                 if (num_maior < num[i])
                       num_maior = num[i];
        }
        return num_maior;
}

            O programa acima recebe 5 números e armazena em um vetor. Depois é
necessário saber qual o maior desses 5 números. Para isso passamos o vetor como
parâmetro para a função maior. Aucostume-se com esse tipo de código, pois os
programas que faremos em Java utilizarão, e muito, técnicas dessa natureza.
            É interessante frisar que no C não existe um tipo String. O C guarda as strings
dentro de matrizes de Char. Não vamos perder tempo com esse conceito porque o
Java já contém o tipo String.




E o Que Mais?


            Ainda há muito o que estudar sobre C: ponteiros, struct, diversos tipos de
bibliotecas, diretivas de compilação, etc.
            Mas o nosso objetivo, como já mencionado, não é o aprofundamento da
linguagem C. Por isso não vamos estudar esses outros tópicos que não são
importantes para o aprendizado Java.
            A partir do próximo módulo entraremos de cabeça em Java. Abaixo segue uma
tabela que faz uma comparação entre o C e o Java:


Característica                   C                           Java
Tipo de linguagem                Procedural                  Orientada a objetos
Unidade básica de                                            Classe = ADT (Abstract Data
                                 Função
programação                                                  Types)
Portabilidade do código
                                 Possível, com disciplina    Sim, totalmente
fonte
Portabilidade de código          Não. Precisa ser            Sim. Java trabalha com os



                                      www.t2ti.com
                                                                                           9
Curso C Starter

                                                     chamados bytecodes e com
                                                     a filosofia "write once, run
                        recompilado para cada
compilado                                            anywhere" (escreva uma
                        arquitetura
                                                     vez, rode em qualquer
                                                     lugar)
Segurança               Limitada                     Embutida na linguagem
                                                     javac Hello.java cria um
                        gcc hello.c cria um código   bytecode que pode ser
Compilação
                        de máquina                   interpretado e compilado
                                                     pela máquina virtual Java
                                                     javac Main.java – quaisquer
                        gcc main.c helper1.c         arquivos dependentes são
Compilação em join
                        helper2.c                    automaticamente
                                                     recompilados, se necessário
                                                     public class HelloWorld {
                        #include<stdio.h> int
                                                          public static void
                        main(void) {
                                                     main(String[] args) {
hello, world                printf("Hellon");
                                                          System.out.println("Hello"
                            return 0;
                                                     );
                        }
                                                      }}
Característica          C                            Java
                        int usualmente de 32 bit     int 32 bit em complemento
                        em complemento de 2          de 2
Tipos inteiros
                        long usualmente de 32 bit long 64 bit em complemento
                        em complemento de 2          de 2
                        float usualmente 32 bit;     float 32 bit
Tipos ponto flutuante
                        double usua 64 bit           double 64 bit
                        Use o int: 0 para false,     Tem um tipo booleano
Tipo booleano           qualquer outro valor para    (boolean) que armazena os
                        true                         valores true ou false
                        char usualmente 8 bit
Tipo char                                            char 16 bit UNICODE
                        ASCII
Laços for               for (i = 0; i < N; i++)      for (int i = 0; i < N; i++)
Declaração de arrays    int my_array[] =             int[] a = new int[N];
                        {1,23,17,4,-5,100};



                               www.t2ti.com
                                                                                    10
Curso C Starter


                           É na verdade um vetor de
Strings                    char terminado pelo         É um tipo de dado em Java.
                           caractere nulo ('0')
Acesso a bibliotecas       #include <stdio.h>          import java.io.File;
                           #include "math.h"
Acessando uma função de    x = sqrt(2.2);
                                                       x = Math.sqrt(2.2);
uma biblioteca             Todas as funções e nomes
                           de variáveis são globais
Impressão para a saída                                 System.out.println("sum = "
                           printf("sum = %d", x);
padrão                                                 + x);
                           printf("avg = %3.2f",       System.out.printf("avg =
Impressão formatada
                           avg);                       %3.2f", avg)
Endereço de memória        Ponteiro                    Referência
Manipulação de ponteiros   *, &, +                     Não permitida
                                                       public static int max(int a,
Funções                    int max(int a, int b)
                                                       int b)
                                                       Todos os tipos primitivos e
                           Tipos de dados primitivos, referências, que inclui
Passando por valor
                           structs e ponteiros         arrays, são passados por
                                                       valor
Alocação de memória        malloc                      new
Desalocação de memória     free                        Coletor de lixo automático
Declaração de constantes   const e #define             final
Gráficos                   Bibliotecas externas        Suporte nativo
null                       NULL                        null


Característica             C                           Java
Convenção para nome de
                           sum_of_squares              sumOfSquares
variáveis
Comentários                /* */                       /* */ or //
                                                       Stack.java – o nome do
Convenção para nome de
                           stack.c, stack.h            arquivo precisar ser o
arquivos
                                                       mesmo da classe




                                   www.t2ti.com
                                                                                      11
Curso C Starter

       Java é uma linguagem boa de aprender. Embora não pareça, é uma linguagem
fácil. O programador que aprender a programar em Java, na maioria das vezes, sente
mais facilidade que um programador que já desenvolve em outra linguagem, como
Clipper ou Delphi. Isso ocorre porque programar em Java significa programar com o
conceito de orientação a objetos. Muitas vezes uma pessoa que programa em Delphi
não utiliza os conceitos de OO, mesmo que o Delphi seja uma linguagem OO.
       Como tudo na vida, aprender Java exige esforço e dedicação. Estude
bastantes os módulos disponibilizados no site www.alberteije.com. Assista aos mini-
cursos em vídeo. Envie suas dúvidas para a lista de discussão.


Exercícios


       01 – Melhore o programa para calcular a média de notas dadas. No lugar de 5
notas deixe esse valor indefinido. Quem vai informar o valor é o usuário.


       02 – Dados dois vetores, crie um terceiro com o produto dos elementos dos
dois primeiros.


       03 – Dados dois vetores bidimensionais, crie um terceiro com a soma dos
elementos dos dois primeiros.


       04 - Dizemos que uma matriz quadrada inteira é um quadrado mágico se a
soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma
dos elementos das diagonais principal e secundária são todas iguais.


       Exemplo: A matriz




       é um quadrado mágico.
       Dada uma matriz quadrada Anxn , verificar se A é um quadrado mágico.




                                  www.t2ti.com
                                                                                 12
Curso C Starter

           05 - Deseja-se fazer a emissão da folha de pagamento de uma empresa. Para
cada um dos n funcionários da empresa são dadas as seguintes informações:


NOME
SAL (salário)
HED (horas extras diurnas)
HEN (horas extras noturnas)
ND (número de dependentes)
FAL (faltas em horas)
DE (descontos eventuais)
REF (gastos com refeições feitas na empresa)
VAL (vales retirados durante o mês).




           Emitir as seguintes informações:


nome,
salário,
horas extras = HED * SAL/160 + HEN * 1.2 * SAL/160,
salário família = ND * 0.05 * salário mínimo vigente,
salário bruto = salário + horas extras + salário família.




           Descontos efetuados:


INSS = 0.08 * SAL,
faltas = FAL * SAL/160,
refeições,
vales,
descontos eventuais,
imposto de renda = 0.08 * salário bruto.




           Salário líquido = salário bruto - desconto total.




                                      www.t2ti.com
                                                                                  13
Curso C Starter


       06 - Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De
cada habitante foram coletados os dados: idade, sexo, salário e número de filhos.
Faça um procedimento que leia esses dados em um vetor.


       07 - Faça um procedimento que receba o vetor definido no exercício anterior,
por parâmetro, e retorna: a média de salário entre os habitantes, a menor e a maior
idade do grupo e a quantidade de mulheres com 3 filhos que recebe até R$500,00.


       08 - Faça uma função que recebe um vetor X(20) de reais , por parâmetro, e
retorna a soma dos elementos de X.


       09 - Faça um procedimento que recebe, por parâmetro, um vetor A(50) de
reais e retorna-o ordenado em ordem crescente.


       10 - Faça um procedimento que gera os 10 primeiros primos acima de 100 e
retorna-os em um vetor X(10).




                                 www.t2ti.com
                                                                                  14

Recomendados

mod2-mecanismos por
mod2-mecanismosmod2-mecanismos
mod2-mecanismosdiogoa21
1.6K visualizações84 slides
Estruturas por
EstruturasEstruturas
EstruturasRodrigo Marin
3.2K visualizações21 slides
mod3-programação-estruturada por
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
778 visualizações13 slides
Fundamentos de logica de programação por
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programaçãoRogerio de Moraes
4.8K visualizações6 slides
Linguagem c parte 2 por
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2Mauro Pereira
1.7K visualizações24 slides
Apostila c por
Apostila cApostila c
Apostila cMauro Pereira
1.2K visualizações22 slides

Mais conteúdo relacionado

Mais procurados

Programando em C++ // Estrutura Básica por
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
6.5K visualizações34 slides
Aula01 por
Aula01Aula01
Aula01vdlos
173 visualizações40 slides
mod1-algoritmia por
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
1.3K visualizações29 slides
Algoritmos e lp parte3-pseudocódigo por
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
37K visualizações61 slides
Microprocessadores ii revisão de linguagem de programação (parte2) por
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)Mauro Pereira
802 visualizações53 slides
Linguagem c parte 1 por
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1Mauro Pereira
4.4K visualizações39 slides

Mais procurados(20)

Programando em C++ // Estrutura Básica por Yuri Camelo
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
Yuri Camelo6.5K visualizações
Aula01 por vdlos
Aula01Aula01
Aula01
vdlos173 visualizações
mod1-algoritmia por diogoa21
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
diogoa211.3K visualizações
Algoritmos e lp parte3-pseudocódigo por Mauro Pereira
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira37K visualizações
Microprocessadores ii revisão de linguagem de programação (parte2) por Mauro Pereira
Microprocessadores ii revisão de linguagem de programação (parte2)Microprocessadores ii revisão de linguagem de programação (parte2)
Microprocessadores ii revisão de linguagem de programação (parte2)
Mauro Pereira802 visualizações
Linguagem c parte 1 por Mauro Pereira
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
Mauro Pereira4.4K visualizações
A linguagem de programação c por Clausia Antoneli
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
Clausia Antoneli3.1K visualizações
Aula 10 - Equivalência Java x Portugol Studio - parte 1 por Pacc UAB
Aula 10 - Equivalência Java x Portugol Studio - parte 1Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1
Pacc UAB6.4K visualizações
Lógica de Programação por Claudio Stein Junior
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Claudio Stein Junior4.3K visualizações
Introdução à Linguagem de Programação C por Jose Augusto Cintra
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
Jose Augusto Cintra218 visualizações
Algoritmos e Lógica de Programação por Jose Augusto Cintra
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
Jose Augusto Cintra275 visualizações
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO por Microsoft
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Microsoft14.1K visualizações
Algoritmos computacionais por Dérick Platini
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
Dérick Platini257 visualizações
Aula 16 - Modularização - parte 3 - exercícios por Pacc UAB
Aula 16 - Modularização - parte 3 - exercíciosAula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercícios
Pacc UAB6.1K visualizações

Destaque

las redes sociales por
las redes socialeslas redes sociales
las redes socialesSebas Morales
316 visualizações9 slides
Matriz de valoración sobre publicar en un blog por
Matriz de valoración sobre publicar en un blogMatriz de valoración sobre publicar en un blog
Matriz de valoración sobre publicar en un blogCayetana Reyes
465 visualizações1 slide
Smf vi antes do consolador 1 setembro 2014 por
Smf vi antes do consolador  1 setembro 2014Smf vi antes do consolador  1 setembro 2014
Smf vi antes do consolador 1 setembro 2014Marcílio Pereira
642 visualizações48 slides
Uso adecuado de las redes sociales por
Uso adecuado de las redes socialesUso adecuado de las redes sociales
Uso adecuado de las redes socialesMateo Pillajo
592 visualizações10 slides
Programa5 por
Programa5Programa5
Programa5lourdes9898
395 visualizações18 slides
Redes sociales por
Redes socialesRedes sociales
Redes socialescarolinazgz5
349 visualizações14 slides

Destaque(20)

las redes sociales por Sebas Morales
las redes socialeslas redes sociales
las redes sociales
Sebas Morales316 visualizações
Matriz de valoración sobre publicar en un blog por Cayetana Reyes
Matriz de valoración sobre publicar en un blogMatriz de valoración sobre publicar en un blog
Matriz de valoración sobre publicar en un blog
Cayetana Reyes465 visualizações
Smf vi antes do consolador 1 setembro 2014 por Marcílio Pereira
Smf vi antes do consolador  1 setembro 2014Smf vi antes do consolador  1 setembro 2014
Smf vi antes do consolador 1 setembro 2014
Marcílio Pereira642 visualizações
Uso adecuado de las redes sociales por Mateo Pillajo
Uso adecuado de las redes socialesUso adecuado de las redes sociales
Uso adecuado de las redes sociales
Mateo Pillajo592 visualizações
Programa5 por lourdes9898
Programa5Programa5
Programa5
lourdes9898395 visualizações
Redes sociales por carolinazgz5
Redes socialesRedes sociales
Redes sociales
carolinazgz5349 visualizações
Bdi Programa De Asignatura Agosto 2005 por Gabriel Mondragón
Bdi Programa De Asignatura Agosto 2005Bdi Programa De Asignatura Agosto 2005
Bdi Programa De Asignatura Agosto 2005
Gabriel Mondragón762 visualizações
Ignite presentation por bennyboy28
Ignite presentationIgnite presentation
Ignite presentation
bennyboy28315 visualizações
Cuarto nivel.exposicion por vanepajaro
Cuarto nivel.exposicionCuarto nivel.exposicion
Cuarto nivel.exposicion
vanepajaro4.8K visualizações
resumen de navegar y buscador web por Angel Valenzuela
resumen de navegar y buscador webresumen de navegar y buscador web
resumen de navegar y buscador web
Angel Valenzuela1.8K visualizações
Graffitis miguel marques8b por navegananet
Graffitis miguel marques8bGraffitis miguel marques8b
Graffitis miguel marques8b
navegananet2.7K visualizações
O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado... por Alina Cunha
O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado...O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado...
O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado...
Alina Cunha1.5K visualizações
MI Social Media & Prevention: Getting Started por LaDonna Coy
MI Social Media & Prevention: Getting StartedMI Social Media & Prevention: Getting Started
MI Social Media & Prevention: Getting Started
LaDonna Coy978 visualizações
Administracion!!! por florenciabc
Administracion!!!Administracion!!!
Administracion!!!
florenciabc389 visualizações
Mi mundo virtual por maria_mora_lopez
Mi mundo virtualMi mundo virtual
Mi mundo virtual
maria_mora_lopez296 visualizações
Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the... por nashp
Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the...Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the...
Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the...
nashp368 visualizações
Aula a crise socioambiental planetária (atual) por João Alfredo Telles Melo
Aula   a crise socioambiental planetária (atual)Aula   a crise socioambiental planetária (atual)
Aula a crise socioambiental planetária (atual)
João Alfredo Telles Melo1.4K visualizações
Incentives complexity por Ali Anani, PhD
Incentives complexityIncentives complexity
Incentives complexity
Ali Anani, PhD2.6K visualizações
Praga república checa por Manuel Arceo
Praga república checaPraga república checa
Praga república checa
Manuel Arceo1.4K visualizações

Similar a Modulo02

Ap vetores por
Ap vetoresAp vetores
Ap vetoresjohndicorrea
1.1K visualizações4 slides
Lógica De Programação por
Lógica De ProgramaçãoLógica De Programação
Lógica De ProgramaçãoRodrigo Piovesana
5.8K visualizações87 slides
Exemplos registros e funções por
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
1.2K visualizações7 slides
Estruturas em C++ (struct) por
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
25.7K visualizações21 slides
mod4-estruturas-dadosestaticas-ordenacao por
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
753 visualizações38 slides
Conceitos e técnicas de programação aula 2 por
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
3K visualizações58 slides

Similar a Modulo02(20)

Ap vetores por johndicorrea
Ap vetoresAp vetores
Ap vetores
johndicorrea1.1K visualizações
Lógica De Programação por Rodrigo Piovesana
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
Rodrigo Piovesana5.8K visualizações
Exemplos registros e funções por Carla Lee
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
Carla Lee1.2K visualizações
Estruturas em C++ (struct) por Márcio Rizzatto
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
Márcio Rizzatto25.7K visualizações
mod4-estruturas-dadosestaticas-ordenacao por diogoa21
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
diogoa21753 visualizações
Conceitos e técnicas de programação aula 2 por Robson Ferreira
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira3K visualizações
Linguagem c wellington telles - aula 06 por profwtelles
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
profwtelles25 visualizações
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf por Enio Filho
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Enio Filho4 visualizações
Introdução a Linguagem C por apolllorj
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj29.4K visualizações
Clean Code por Bruno Lui
Clean CodeClean Code
Clean Code
Bruno Lui11.3K visualizações
Apostila de-introdução-à-linguagem-c por Maicon Rodrigues
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
Maicon Rodrigues288 visualizações
VetoresMatrizes.pdf por DavidPaulino21
VetoresMatrizes.pdfVetoresMatrizes.pdf
VetoresMatrizes.pdf
DavidPaulino212 visualizações
aula01-TDA (1).ppt por TopsAvakinImvu
aula01-TDA (1).pptaula01-TDA (1).ppt
aula01-TDA (1).ppt
TopsAvakinImvu4 visualizações
Curso de python capítulo 1 - introdução por Ricardo Fahham
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
Ricardo Fahham375 visualizações
FC-Logic por guest119e7e
FC-LogicFC-Logic
FC-Logic
guest119e7e624 visualizações
Lógica de Programação por Adao Chiavelli
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Adao Chiavelli4.5K visualizações
Curso Básico de Java - Aula 7 por PeslPinguim
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
PeslPinguim465 visualizações

Último

O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima... por
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...josecarlos413721
7 visualizações4 slides
Competências para extrair inovação na tecnologia! por
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!AnneliseGripp1
9 visualizações11 slides
Capturas microbit.docx por
Capturas microbit.docxCapturas microbit.docx
Capturas microbit.docxseruto231014
8 visualizações5 slides
SciELO: O Guia. por
SciELO: O Guia.SciELO: O Guia.
SciELO: O Guia.susieconceicao118
42 visualizações8 slides
Competências para extrair inovação na tecnologia! por
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!Annelise Gripp
15 visualizações11 slides
Um edifício é composto tanto de elementos estruturais — que são dimensionados... por
Um edifício é composto tanto de elementos estruturais — que são dimensionados...Um edifício é composto tanto de elementos estruturais — que são dimensionados...
Um edifício é composto tanto de elementos estruturais — que são dimensionados...josecarlos413721
14 visualizações2 slides

Último(10)

O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima... por josecarlos413721
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...
josecarlos4137217 visualizações
Competências para extrair inovação na tecnologia! por AnneliseGripp1
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!
AnneliseGripp19 visualizações
Capturas microbit.docx por seruto231014
Capturas microbit.docxCapturas microbit.docx
Capturas microbit.docx
seruto2310148 visualizações
SciELO: O Guia. por susieconceicao118
SciELO: O Guia.SciELO: O Guia.
SciELO: O Guia.
susieconceicao11842 visualizações
Competências para extrair inovação na tecnologia! por Annelise Gripp
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!
Annelise Gripp15 visualizações
Um edifício é composto tanto de elementos estruturais — que são dimensionados... por josecarlos413721
Um edifício é composto tanto de elementos estruturais — que são dimensionados...Um edifício é composto tanto de elementos estruturais — que são dimensionados...
Um edifício é composto tanto de elementos estruturais — que são dimensionados...
josecarlos41372114 visualizações
Dimensions - Tutorial.pptx por barbaraguerra088
Dimensions  - Tutorial.pptxDimensions  - Tutorial.pptx
Dimensions - Tutorial.pptx
barbaraguerra08829 visualizações
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr... por josecarlos413721
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...
josecarlos41372112 visualizações
Uma exposição em um centro de convenção precisa contabilizar os visitantes po... por josecarlos413721
Uma exposição em um centro de convenção precisa contabilizar os visitantes po...Uma exposição em um centro de convenção precisa contabilizar os visitantes po...
Uma exposição em um centro de convenção precisa contabilizar os visitantes po...
josecarlos41372148 visualizações
A documentação de um programa é fundamental, independentemente da linguagem d... por josecarlos413721
A documentação de um programa é fundamental, independentemente da linguagem d...A documentação de um programa é fundamental, independentemente da linguagem d...
A documentação de um programa é fundamental, independentemente da linguagem d...
josecarlos41372112 visualizações

Modulo02

  • 1. Curso C Starter www.t2ti.com 1
  • 2. Curso C Starter Apresentação O Curso C Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam aprender a linguagem C. A estrutura do curso é formada por módulos em PDF e por mini-cursos em vídeo. O aluno deve baixar esse material e estudá-lo. Deve realizar os exercícios propostos. Todas as dúvidas devem ser enviadas para a lista de discussão que está disponível para inscrição na página do Curso C Starter no site www.t2ti.com. As dúvidas serão respondidas pelos instrutores Albert Eije, Cláudio de Barros e Miguel Kojiio, além dos demais participantes da lista. Nosso objetivo é que após o estudo do Curso C Starter o aluno tenha as noções fundamentais da linguagem C e consiga, a partir deste momento, aprofundar- se no assunto de forma autônoma e de acordo com as suas expectativas. Albert Eije trabalha com informática desde 1993. Durante esse período já trabalhou com várias linguagens de programação: Clipper, PHP, Delphi, C, Java, etc. Atualmente mantém o site www.alberteije.com e trabalha como analista de sistemas do Banco do Brasil. Cláudio de Barros é Tecnólogo em Processamento de Dados e analista de sistemas do Banco do Brasil. Miguel Kojiio é bacharel em Sistemas de Informação, profissional certificado Java e também trabalha como analista de sistemas do Banco do Brasil. www.t2ti.com 2
  • 3. Curso C Starter Módulo 02 Conhecendo a Linguagem C Parte II Constantes Vamos começar nosso segundo módulo falando sobre constantes. Já vimos que podemos ter diversas variáveis no nosso programa. Mas, se precisássemos utilizar uma variável que não muda de valor? Ou seja, cujo valor seja constante? Obseve o programa abaixo: #include <stdio.h> #include <stdlib.h> #define PI 3.14159 main() { float raio = 10.0; printf("Area da esfera = %.2f",4*PI*raio*raio); system("pause"); } Veja que utilizamos uma nova diretiva: #define. Essa diretiva serve para definirmos nossas constantes. Basta apenas informar o nome da constante, que dever estar todo em caixa alta e logo após o valor da mesma. Não se informa o tipo de dado e nem se coloca vírgula ou ponto-e-vírgula. Vetores Alguns autores preferem chamá-los de matrizes. Na verdade um vetor é uma matriz de uma linha apenas e que pode ter diversas colunas. www.t2ti.com 3
  • 4. Curso C Starter Para entendermos a necessidade de usarmos vetores vamos diretamente a um exemplo: digamos que precisamos calcular a média das notas da prova de 5 alunos. Observe o programa abaixo: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { float n1,n2,n3,n4,n5; printf("Digite a nota do aluno 1: "); scanf("%f",&n1); printf("Digite a nota do aluno 2: "); scanf("%f",&n2); printf("Digite a nota do aluno 3: "); scanf("%f",&n3); printf("Digite a nota do aluno 4: "); scanf("%f",&n4); printf("Digite a nota do aluno 5: "); scanf("%f",&n5); printf("Media= %.2f n",(n1+n2+n3+n4+n5)/5); system("PAUSE"); return 0; } O programa funciona com perfeição. Vai ler a nota dos 5 alunos e depois calcular a sua média. E se precisarmos aumentar o número de alunos para 20? Nosso programa vai aumentar significativamente não é? Se nosso programa fosse utilizado para calcular a média de 2000 alunos? Já dá para perceber que a saída acima é inviável. A solução é utilizarmos um vetor. Um vetor é uma série de variáveis do mesmo tipo sendo referenciadas por um único nome, onde cada variável é diferenciada através de um número chamado www.t2ti.com 4
  • 5. Curso C Starter “subscrito” ou “índice”. Colchetes são utilizados para conter o índice. Na figura acima podemos observar um trem com 8 vagões. Esse trem é o nosso vetor. Como faríamos para imprimir o número 5 de nosso vetor? Para termos acesso ao índice onde o número 5 se encontra teríamos que fazer o seguinte: printf(“%d”,vetor[4]); Ué? Mas o comando acima não vai imprimir o número 4? Não. Detalhe importante: em C e em Java um vetor sempre começa do índice zero. Portanto vetor[0] seria equivalente ao número 1, no exemplo acima. Vamos refazer nosso programa para calcular a nota de 5 alunos utilizando o conceito de vetores. #include <stdio.h> #include <stdlib.h> main() { float notas[5]; //nosso vetor com 5 posições numéricas int i; float soma = 0.0; for(i=0;i<5;i++){ printf("Digite a nota do aluno %d: ", i+1); scanf("%f",&notas[i]); } for(i=0;i<5;i++) soma = soma + notas[i]; www.t2ti.com 5
  • 6. Curso C Starter printf("Media= %.2f n",soma/5); system("PAUSE"); return 0; } Já ficou bem melhor. Nos exercícios você será convidado a melhorar o programa acima. No primeiro laço for nós inserimos os dados dentro do vetor. No segundo laço for nós pegamos cada um dos valores e acumulamos na variável soma. Por fim, dividimos soma por 5 para calcular a média dos 5 alunos. Vamos a outro exemplo: o usuário fornecerá um valor em Reais. Nosso programa deve informar o menor número de cédulas possíveis para se chegar ao valor informado. Exemplo: R$ 163,00. 1 nota de R$ 100,00 1 nota de R$ 50,00 1 nota de R$ 10,00 1 nota de R$ 2,00 1 nota de R$ 1,00 Veja como fica nosso programa: #include <stdio.h> #include <stdlib.h> main() { int notas[8] = {100, 50, 20, 10, 5, 2, 1}; int valor, qtde, i; printf("Digite o valor para o calculo das notas n"); scanf("%d",&valor); for(i=0;i<7;i++){ www.t2ti.com 6
  • 7. Curso C Starter qtde = valor / notas[i]; printf("Quantidade de notas de R$%5.d : %d n", notas[i],qtde); valor = valor % notas[i]; } system("PAUSE"); } O programa acima faz o que é esperado. Tente entender o que está ocorrendo. Caso haja dúvidas comente sobre o mesmo na lista de discussão. Vetores Bidimensionais Algumas pessoas vão insistir que os vetores bidimensionais devem ser chamados de matrizes. Dizem que quando existe apenas uma dimensão (um colchete), aí sim é um vetor. Mas se tiver mais de uma dimensão é uma matriz. Outros, como já dito, chamam todos os vetores de matrizes. Não se preocupe com essa terminologia. Em Java essas estruturas são chamadas de Arrays (vetores). É isso que nos interessa. Para que não haja confusão, continuaremos a chamá-los de vetores apenas. Observe o código abaixo: # include <stdio.h> int main() { int t, i, M[3][4]; for (t=0; t<3; ++t) for (i=0; i<4; ++i) M[t][i] = (t*4)+i+1; for (t=0; t<3; ++t) { for (i=0; i<4; ++i) printf ("%3d ", M[t][i]); printf ("n"); } system("pause"); www.t2ti.com 7
  • 8. Curso C Starter return(0); } O código acima cria um vetor de 3 posições. Dentro de cada vetor desses existe um vetor de 4 posições. É um vetor de vetores. Observe que para preenchermos os vetores de dentro precisamos fazer dois laços for. O primeiro laço vai percorrer o primeiro vetor. A cada índice do primeiro vetor o segundo laço for entra em ação para preencher os seus elementos. Após preencher todos os elementos existe outro laço for que imprime os elementos desse vetor bidimensional. Poderia dizer quais elementos serão impressos apenas olhando para o código acima? Tente fazer isso antes de implementar e executar o código. Comente sobre o código na lista de discussão caso reste alguma dúvida. Vetores como Parâmetros de Funções Você deve se recordar que utilizamos funções e passamos parâmetros para as mesmas. Também podemos passar um vetor como parâmetro para uma função. Observe na prática como isso ocorre: # include <stdio.h> int main() { int maior(int num[]); //declaracao da funcao dentro de main int num[6],i; printf("digite 5 numeros para o calculo do maior n"); for(i=0;i<5;i++){ scanf("%d",&num[i]); } printf("O maior numero do vetor eh: %d n",maior(num)); system("pause"); return(0); } www.t2ti.com 8
  • 9. Curso C Starter int maior(int num[]) { int i,num_maior=0; for(i=0;i<5;i++){ if (num_maior < num[i]) num_maior = num[i]; } return num_maior; } O programa acima recebe 5 números e armazena em um vetor. Depois é necessário saber qual o maior desses 5 números. Para isso passamos o vetor como parâmetro para a função maior. Aucostume-se com esse tipo de código, pois os programas que faremos em Java utilizarão, e muito, técnicas dessa natureza. É interessante frisar que no C não existe um tipo String. O C guarda as strings dentro de matrizes de Char. Não vamos perder tempo com esse conceito porque o Java já contém o tipo String. E o Que Mais? Ainda há muito o que estudar sobre C: ponteiros, struct, diversos tipos de bibliotecas, diretivas de compilação, etc. Mas o nosso objetivo, como já mencionado, não é o aprofundamento da linguagem C. Por isso não vamos estudar esses outros tópicos que não são importantes para o aprendizado Java. A partir do próximo módulo entraremos de cabeça em Java. Abaixo segue uma tabela que faz uma comparação entre o C e o Java: Característica C Java Tipo de linguagem Procedural Orientada a objetos Unidade básica de Classe = ADT (Abstract Data Função programação Types) Portabilidade do código Possível, com disciplina Sim, totalmente fonte Portabilidade de código Não. Precisa ser Sim. Java trabalha com os www.t2ti.com 9
  • 10. Curso C Starter chamados bytecodes e com a filosofia "write once, run recompilado para cada compilado anywhere" (escreva uma arquitetura vez, rode em qualquer lugar) Segurança Limitada Embutida na linguagem javac Hello.java cria um gcc hello.c cria um código bytecode que pode ser Compilação de máquina interpretado e compilado pela máquina virtual Java javac Main.java – quaisquer gcc main.c helper1.c arquivos dependentes são Compilação em join helper2.c automaticamente recompilados, se necessário public class HelloWorld { #include<stdio.h> int public static void main(void) { main(String[] args) { hello, world printf("Hellon"); System.out.println("Hello" return 0; ); } }} Característica C Java int usualmente de 32 bit int 32 bit em complemento em complemento de 2 de 2 Tipos inteiros long usualmente de 32 bit long 64 bit em complemento em complemento de 2 de 2 float usualmente 32 bit; float 32 bit Tipos ponto flutuante double usua 64 bit double 64 bit Use o int: 0 para false, Tem um tipo booleano Tipo booleano qualquer outro valor para (boolean) que armazena os true valores true ou false char usualmente 8 bit Tipo char char 16 bit UNICODE ASCII Laços for for (i = 0; i < N; i++) for (int i = 0; i < N; i++) Declaração de arrays int my_array[] = int[] a = new int[N]; {1,23,17,4,-5,100}; www.t2ti.com 10
  • 11. Curso C Starter É na verdade um vetor de Strings char terminado pelo É um tipo de dado em Java. caractere nulo ('0') Acesso a bibliotecas #include <stdio.h> import java.io.File; #include "math.h" Acessando uma função de x = sqrt(2.2); x = Math.sqrt(2.2); uma biblioteca Todas as funções e nomes de variáveis são globais Impressão para a saída System.out.println("sum = " printf("sum = %d", x); padrão + x); printf("avg = %3.2f", System.out.printf("avg = Impressão formatada avg); %3.2f", avg) Endereço de memória Ponteiro Referência Manipulação de ponteiros *, &, + Não permitida public static int max(int a, Funções int max(int a, int b) int b) Todos os tipos primitivos e Tipos de dados primitivos, referências, que inclui Passando por valor structs e ponteiros arrays, são passados por valor Alocação de memória malloc new Desalocação de memória free Coletor de lixo automático Declaração de constantes const e #define final Gráficos Bibliotecas externas Suporte nativo null NULL null Característica C Java Convenção para nome de sum_of_squares sumOfSquares variáveis Comentários /* */ /* */ or // Stack.java – o nome do Convenção para nome de stack.c, stack.h arquivo precisar ser o arquivos mesmo da classe www.t2ti.com 11
  • 12. Curso C Starter Java é uma linguagem boa de aprender. Embora não pareça, é uma linguagem fácil. O programador que aprender a programar em Java, na maioria das vezes, sente mais facilidade que um programador que já desenvolve em outra linguagem, como Clipper ou Delphi. Isso ocorre porque programar em Java significa programar com o conceito de orientação a objetos. Muitas vezes uma pessoa que programa em Delphi não utiliza os conceitos de OO, mesmo que o Delphi seja uma linguagem OO. Como tudo na vida, aprender Java exige esforço e dedicação. Estude bastantes os módulos disponibilizados no site www.alberteije.com. Assista aos mini- cursos em vídeo. Envie suas dúvidas para a lista de discussão. Exercícios 01 – Melhore o programa para calcular a média de notas dadas. No lugar de 5 notas deixe esse valor indefinido. Quem vai informar o valor é o usuário. 02 – Dados dois vetores, crie um terceiro com o produto dos elementos dos dois primeiros. 03 – Dados dois vetores bidimensionais, crie um terceiro com a soma dos elementos dos dois primeiros. 04 - Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todas iguais. Exemplo: A matriz é um quadrado mágico. Dada uma matriz quadrada Anxn , verificar se A é um quadrado mágico. www.t2ti.com 12
  • 13. Curso C Starter 05 - Deseja-se fazer a emissão da folha de pagamento de uma empresa. Para cada um dos n funcionários da empresa são dadas as seguintes informações: NOME SAL (salário) HED (horas extras diurnas) HEN (horas extras noturnas) ND (número de dependentes) FAL (faltas em horas) DE (descontos eventuais) REF (gastos com refeições feitas na empresa) VAL (vales retirados durante o mês). Emitir as seguintes informações: nome, salário, horas extras = HED * SAL/160 + HEN * 1.2 * SAL/160, salário família = ND * 0.05 * salário mínimo vigente, salário bruto = salário + horas extras + salário família. Descontos efetuados: INSS = 0.08 * SAL, faltas = FAL * SAL/160, refeições, vales, descontos eventuais, imposto de renda = 0.08 * salário bruto. Salário líquido = salário bruto - desconto total. www.t2ti.com 13
  • 14. Curso C Starter 06 - Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De cada habitante foram coletados os dados: idade, sexo, salário e número de filhos. Faça um procedimento que leia esses dados em um vetor. 07 - Faça um procedimento que receba o vetor definido no exercício anterior, por parâmetro, e retorna: a média de salário entre os habitantes, a menor e a maior idade do grupo e a quantidade de mulheres com 3 filhos que recebe até R$500,00. 08 - Faça uma função que recebe um vetor X(20) de reais , por parâmetro, e retorna a soma dos elementos de X. 09 - Faça um procedimento que recebe, por parâmetro, um vetor A(50) de reais e retorna-o ordenado em ordem crescente. 10 - Faça um procedimento que gera os 10 primeiros primos acima de 100 e retorna-os em um vetor X(10). www.t2ti.com 14