SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
 
Aula01
Aula01Aula01
Aula01vdlos
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro 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)
Microprocessadores ii revisão de linguagem de programação (parte2)Mauro Pereira
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação cClausia Antoneli
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
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 1Pacc UAB
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
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ÇÃOMicrosoft
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionaisDérick Platini
 
Aula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosAula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosPacc UAB
 

La actualidad más candente (20)

Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
 
Aula01
Aula01Aula01
Aula01
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
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)
Microprocessadores ii revisão de linguagem de programação (parte2)
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
01 logica
01 logica01 logica
01 logica
 
Java3
Java3Java3
Java3
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
 
Java5
Java5Java5
Java5
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
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
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Java2
Java2Java2
Java2
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
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
 
Series lab
Series labSeries lab
Series lab
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Aula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosAula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercícios
 

Destacado

Matriz de valoración sobre publicar en un blog
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
 
Smf vi antes do consolador 1 setembro 2014
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
 
Uso adecuado de las redes sociales
Uso adecuado de las redes socialesUso adecuado de las redes sociales
Uso adecuado de las redes socialesMateo Pillajo
 
Bdi Programa De Asignatura Agosto 2005
Bdi Programa De Asignatura Agosto 2005Bdi Programa De Asignatura Agosto 2005
Bdi Programa De Asignatura Agosto 2005Gabriel Mondragón
 
Ignite presentation
Ignite presentationIgnite presentation
Ignite presentationbennyboy28
 
Cuarto nivel.exposicion
Cuarto nivel.exposicionCuarto nivel.exposicion
Cuarto nivel.exposicionvanepajaro
 
resumen de navegar y buscador web
resumen de navegar y buscador webresumen de navegar y buscador web
resumen de navegar y buscador webAngel Valenzuela
 
Graffitis miguel marques8b
Graffitis miguel marques8bGraffitis miguel marques8b
Graffitis miguel marques8bnavegananet
 
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...
O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado...Alina Cunha
 
MI Social Media & Prevention: Getting Started
MI Social Media & Prevention: Getting StartedMI Social Media & Prevention: Getting Started
MI Social Media & Prevention: Getting StartedLaDonna Coy
 
Administracion!!!
Administracion!!!Administracion!!!
Administracion!!!florenciabc
 
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...
Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the...nashp
 
Aula a crise socioambiental planetária (atual)
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 Melo
 
Praga república checa
Praga república checaPraga república checa
Praga república checaManuel Arceo
 

Destacado (20)

las redes sociales
las redes socialeslas redes sociales
las redes sociales
 
Matriz de valoración sobre publicar en un blog
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
 
Smf vi antes do consolador 1 setembro 2014
Smf vi antes do consolador  1 setembro 2014Smf vi antes do consolador  1 setembro 2014
Smf vi antes do consolador 1 setembro 2014
 
Uso adecuado de las redes sociales
Uso adecuado de las redes socialesUso adecuado de las redes sociales
Uso adecuado de las redes sociales
 
Programa5
Programa5Programa5
Programa5
 
Redes sociales
Redes socialesRedes sociales
Redes sociales
 
Bdi Programa De Asignatura Agosto 2005
Bdi Programa De Asignatura Agosto 2005Bdi Programa De Asignatura Agosto 2005
Bdi Programa De Asignatura Agosto 2005
 
Ignite presentation
Ignite presentationIgnite presentation
Ignite presentation
 
Cuarto nivel.exposicion
Cuarto nivel.exposicionCuarto nivel.exposicion
Cuarto nivel.exposicion
 
resumen de navegar y buscador web
resumen de navegar y buscador webresumen de navegar y buscador web
resumen de navegar y buscador web
 
Graffitis miguel marques8b
Graffitis miguel marques8bGraffitis miguel marques8b
Graffitis miguel marques8b
 
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...
O Gerenciamento de Crise de Imagem no Segmento Musical no Brasil e nos Estado...
 
MI Social Media & Prevention: Getting Started
MI Social Media & Prevention: Getting StartedMI Social Media & Prevention: Getting Started
MI Social Media & Prevention: Getting Started
 
Administracion!!!
Administracion!!!Administracion!!!
Administracion!!!
 
Mi mundo virtual
Mi mundo virtualMi mundo virtual
Mi mundo virtual
 
WOUNDS
WOUNDSWOUNDS
WOUNDS
 
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...
Medicaid Outreach and Enrollment for Pregnant Women: What is the State of the...
 
Aula a crise socioambiental planetária (atual)
Aula   a crise socioambiental planetária (atual)Aula   a crise socioambiental planetária (atual)
Aula a crise socioambiental planetária (atual)
 
Incentives complexity
Incentives complexityIncentives complexity
Incentives complexity
 
Praga república checa
Praga república checaPraga república checa
Praga república checa
 

Similar a Modulo02

Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Conceitos e técnicas de programação aula 2
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
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06profwtelles
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
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.pdfEnio Filho
 
Prova de algoritmos e estrutura de dados
Prova de algoritmos e estrutura de dadosProva de algoritmos e estrutura de dados
Prova de algoritmos e estrutura de dadosBruno Vale
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introduçãoRicardo Fahham
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de ProgramaçãoAdao Chiavelli
 

Similar a Modulo02 (20)

Ap vetores
Ap vetoresAp vetores
Ap vetores
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Conceitos e técnicas de programação aula 2
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
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
 
Lista c
Lista cLista c
Lista c
 
C# 8 e ML.NET
C# 8 e ML.NETC# 8 e ML.NET
C# 8 e ML.NET
 
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
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
 
Prova de algoritmos e estrutura de dados
Prova de algoritmos e estrutura de dadosProva de algoritmos e estrutura de dados
Prova de algoritmos e estrutura de dados
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Clean Code
Clean CodeClean Code
Clean Code
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
VetoresMatrizes.pdf
VetoresMatrizes.pdfVetoresMatrizes.pdf
VetoresMatrizes.pdf
 
aula01-TDA (1).ppt
aula01-TDA (1).pptaula01-TDA (1).ppt
aula01-TDA (1).ppt
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

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