Buscar

T001 algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CONCEITOS BÁSICOS
Prof. Eduardo Isaia Filho
https://sites.google.com/ulbra.br/g000005gs001/t001
NESTE CAPÍTULO, VOCÊ VAI APRENDER
O que é um algoritmo e para que ele serve;
O histórico da linguagem C e por que ela foi escolhida;
Qual a estrutura básica de um programa em C;
Como declarar constantes e variáveis conforme seus tipos.
INTRODUÇÃO
Neste capítulo, serão apresentados os conceitos introdutórios para a construção de um
algoritmo em linguagem C. Também serão apresentados a estrutura básica de um
programa, o conceito de dados e os tipos de variáveis. Você será introduzido ao
universo da programação, e, ao final do semestre, estará capacitado a construir
programas em linguagem C.
É importante lembrar que programar envolve dedicação e tempo, portanto reserve
tempo na sua semana para praticar os conceitos apresentados neste capítulo, pois
apenas a leitura não irá ajudá-lo a entender como desenvolver programas.
Este capítulo é fundamental para sua disciplina Algoritmos e Programação é a base para
seu curso, sendo essa de fundamental importância para sua carreira acadêmica e
profissional.
Vamos nessa, então… Um excelente semestre a todos(as)!
Todo programa de computador começa a partir de um algoritmo, ou seja, através da
organização lógica das instruções que resolvem o problema. Um programa de
computador é resultado da atividade intelectual de um programador. Para isso são
necessários alguns conhecimentos prévios em abstração, modelagem de problemas e
lógica de programação.
https://sites.google.com/ulbra.br/g000005gs001/t001
CONCEITO DE ALGORITMO
Um algoritmo é uma sequência de passos finitos que visam solucionar um determinado
problema. Resolvemos algoritmos todo o tempo, mas o fazemos de forma tão
automática que nem nos damos conta, por exemplo: trocar uma lâmpada, fazer um
bolo, preparar um café passado, escovar os dentes, trocar um pneu, entre outros. Todas
as atividades do nosso dia a dia que possuem uma sequência de passos finitos para
serem resolvidas podem ser consideradas um algoritmo.
Se utilizarmos o exemplo do preparo de um café passado, teremos os seguintes passos:
1° passo: reservar os utensílios filtro de café, chaleira e recipiente para colocar o
café passado;
2° passo: reservar o pó de café e a água;
3° passo: aquecer a água;
4° passo: colocar o pó de café no filtro e
5° passo: despejar a água aquecida no filtro.
Se você seguir esses passos, ao final você provavelmente terá um café passado. O que
pode ser observado é que alguns desses passos podem ser alterados em sua ordem,
por exemplo: se reservarmos os ingredientes antes dos utensílios não teremos alteração
no produto final. Porém, se colocássemos a água no filtro com café antes de aquecê-la,
o resultado seria indesejado.
Um algoritmo computacional pode ser definido como uma sequência lógica de
instruções ou comandos, que devem ser seguidos para se obter a solução de um
problema. Da mesma forma, um algoritmo do dia a dia deve seguir uma sequência de
passos lógicos que devem ser ordenados de forma clara para solucionar o problema.
https://sites.google.com/ulbra.br/g000005gs001/t001
CONSTRUÇÃO DO ALGORITMO
Para construir um algoritmo, temos que saber claramente qual o problema que
desejamos solucionar, ou seja, qual o objetivo do algoritmo. Para isso, precisamos
analisar o problema identificando três elementos básicos: entrada, processamento e
saída.
A entrada são os elementos que são necessários para dar início à solução do problema,
o processamento é a manipulação dos elementos de entrada para obtenção da saída, e
a saída é o resultado esperado. Se considerarmos o exemplo do café passado,
apresentado anteriormente, podemos identificar:
Entrada: filtro de café, chaleira, recipiente para colocar o café passado, pó de café e
água;
Processamento: aquecer a água, colocar o pó no filtro e despejar a água no filtro;
Saída: o café passado.
Se considerarmos os algoritmos computacionais, podemos descrever esses elementos
em:
Entrada de dados: são os dados que o algoritmo deverá receber;
Processamento de dados: são as fórmulas e a disposição lógica em que os dados
de entrada serão organizados para obter-se a solução do problema;
Saída de dados: é a apresentação do objetivo, ou seja, o resultado esperado.
Por exemplo, se desejamos fazer um algoritmo para fazer a soma de dois números
quaisquer, podemos nesse caso identificar:
Entrada de dados: perguntar ao usuário dois números quaisquer;
Processamento de dados: calcular a soma dos números informados;
Saída de dados: apresentar o resultado da soma.
Sempre que formos construir um algoritmo, devemos nos concentrar nesses três
elementos, pois eles sempre estarão envolvidos. Porém, nem sempre estarão nesta
ordem, podendo variar de algoritmo para algoritmo.
https://sites.google.com/ulbra.br/g000005gs001/t001
G000005VD001T001.mp4
FORMALIZAÇÃO DE UM ALGORITMO
Construir um algoritmo consiste em detalhar os dados que serão processados e as
instruções que vão operar sobre esses dados. Essa construção pode ser feita por
diferentes formas de representações e diferentes linguagens de programação, mas é
importante formalizarmos a descrição dos algoritmos segunda uma convenção pré-
definida, para que todas as pessoas envolvidas no processo possam entendê-la. Para
isso é necessário definir o conjunto de regras que regulam a escrita do algoritmo
(sintaxe) e o conjunto de regras que definem a interpretação dessa escrita (semântica).
Nesta disciplina, foi escolhida a linguagem de programação C como sendo a balizadora
da construção dos algoritmos.
https://sites.google.com/ulbra.br/g000005gs001/t001
INTRODUÇÃO À LINGUAGEM C
A linguagem C foi criada por Dennis Ritchie na década de 70, e resultou de um processo
evolutivo de linguagens que, durante alguns anos, teve seu padrão baseado na versão 5
do sistema operacional UNIX. Com a popularização dos microcomputadores, várias
versões de C foram criadas, gerando muitas discrepâncias entre elas. Para resolver essa
situação, em 1983, o ANSI (American National Standards Institute) estabeleceu um
comitê para definir um padrão que guiasse todas as implementações da linguagem C. A
popularização da linguagem C deve-se a vários fatores, dentre os quais destacam-se:
o conjunto de operadores e tipos de dados disponíveis;
a portabilidade, podendo ser usada em máquinas de portes e de sistemas
operacionais diferentes;
as características de linguagens de alto nível, aliadas às características de
linguagens de baixo nível.
A linguagem C é uma linguagem de propósitos gerais, estruturada e compilada (o
compilador lê o código-fonte do programa inteiro e o converte em um código
executável). Ela é utilizada para a construção de sistemas operacionais, compiladores,
interpretadores, aplicativos para dispositivos móveis, gerenciadores de bancos de
dados, entre outros.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C
Um programa em linguagem C consiste em uma ou mais funções. A função principal,
denominada main, indica onde o programa inicia. A estrutura básica de um programa
em C é apresentada a seguir.
#include <nome da biblioteca>
 main( ) {
 // declaração de variáveis
 // bloco de comandos
 }
https://sites.google.com/ulbra.br/g000005gs001/t001
As bibliotecas são arquivos contendo várias funções que podem ser incorporadas aos
programas escritos em C. A diretiva #include faz com que as funções inseridas na
biblioteca especificada possam ser utilizadas no programa. As bibliotecas mais usadas
são: stdio.h, conio.h, string.h e math.h.
A diretiva #include pode ser usada de duas formas:
 #include "nome da biblioteca"
 #include <nome da biblioteca>
A diferença entre se usar " " e < > é somente a ordem de procura pelo arquivo
especificado nos diretórios. Usa-se " " para informar o nome do arquivo com o caminho
completo, ou se o arquivo estiver no diretório de trabalho. Quando o arquivo estiver no
caminho padrão do compilador (comoé o caso de arquivos como stdio.h e string.h, por
exemplo), usa-se os símbolos < e >.
Os parênteses ao lado da palavra main indicam que ela é uma função, enquanto as
chaves delimitam o seu início e o seu fim. O bloco de comandos que estiver entre as
chaves é executado sequencialmente quando a função for chamada.
Uma boa prática de programação do padrão ANSI é declarar a função main como int
main(void) e, no seu final, antes de fechar a chave que delimita o corpo da função,
incluir a instrução return 0; − essa prática evita que, ao executar os programas, alguns
compiladores emitam uma mensagem do tipo: A função deve retornar um valor.
Compiladores, como o Dev-C++, não emite essa mensagem, por isso optou-se por
utilizá-lo e não adotar essa prática nos exemplos da disciplina.
É importante salientar que a linguagem C é case sensitive, ou seja, é sensível a letras
maiúsculas e minúsculas e todos os programas devem, obrigatoriamente, ser escritos
em letras minúsculas.
https://sites.google.com/ulbra.br/g000005gs001/t001
IDENTIFICADORES (NOMES)
Em linguagem C, os nomes utilizados para referenciar variáveis, constantes e funções
definidas pelo usuário são chamados de identificadores.
A criação de um identificador deve seguir as seguintes regras:
podem ser formados por letras, números e underline (sublinhado baixo);
devem iniciar com uma letra ou com o underline;
letras minúsculas e maiúsculas são consideradas caracteres distintos;
não podem ser palavras reservadas da linguagem C;
podem conter qualquer tamanho, porém apenas os 32 primeiros caracteres são
significativos.
Além disso, é importante criar identificadores considerando a sua aplicação para facilitar
a leitura do código-fonte e, consequentemente, o trabalho do programador, por
exemplo o peso de uma pessoa pode ser armazenada em uma variável chamada
peso_pessoa; enquanto uma função que irá calcular a média de um aluno pode ter
como identificador calcular_media.
TIPOS DE DADOS
O objetivo da maioria dos programas é manipular dados, transformando os dados de
entrada em dados de saída (resultados). Um dado é um atributo que descreve entidades
ou características, por exemplo: o nome de uma pessoa, sua idade, seu peso ou o
número de páginas de um livro.
Quando vamos desenvolver um programa, precisamos previamente identificar o tipo do
dado que está sendo manipulado. Isso é necessário, pois os dados serão armazenados
na memória principal do computador e um espaço de memória específico (tamanho)
deve ser reservado a cada tipo de dado. Os tipos de dados básicos em linguagem C são:
int: os dados do tipo int pertencem ao conjunto de números inteiros relativos, ou
seja, são aqueles que não possuem componentes decimais ou fracionários,
podendo ser positivos, nulo ou negativos. Exemplos: quantidade de alunos em uma
turma, idade de uma pessoa, entre outros. Na linguagem C, um int pode variar de
-32.767 a 32.767 com tamanho máximo de armazenamento de memória de 16 bits.
float: os dados do tipo float pertencem ao conjunto dos números reais
(representado em ponto flutuante) portanto podem ter componentes decimais ou
https://sites.google.com/ulbra.br/g000005gs001/t001
(representado em ponto flutuante), portanto, podem ter componentes decimais ou
fracionários e ser positivos, nulo ou negativos. Exemplos: o salário de uma pessoa,
a temperatura, a altura de um prédio, entre outros. Na linguagem C, um float pode
variar de 3.4 E-38 a 3.4 E+38, com tamanho máximo de armazenamento de
memória de 32 bits.
double: assim como um float, o double representa um número real, representado
em ponto flutuante com maior precisão. Na linguagem C um double pode variar de
1.7 E-308 a 1.7 E+308 com tamanho máximo de armazenamento de memória de 64
bits.
char: os dados do tipo caracter são compostos por um único caractere
alfanumérico (0..9, A..Z, a..z) ou caracter especial (#, $, %, *, ?, >, ...). Exemplos:
resposta a uma pergunta (no caso de S ou N); seleção entre alternativas (no caso da
respostas ser A, B, C, D ou E), o sexo de uma pessoa (no caso de M ou F). Na
linguagem C um char ocupa tamanho máximo de armazenamento de memória de
8 bits.
void: vazio, sem valor.
A linguagem C não possui tipo de dado lógico (que pode assumir verdadeiro ou falso),
pois considera qualquer valor diferente de 0 (zero) como verdadeiro; e também não
possui um tipo especial para armazenar cadeias de caracteres (strings), que são
armazenadas em um vetor de caracteres.
https://sites.google.com/ulbra.br/g000005gs001/t001
DECLARAÇÃO DE VARIÁVEIS
Uma variável pode ser definida como um local, na memória principal, utilizado para
armazenar o conteúdo de um determinado dado e que pode receber muitos valores
diferentes durante a execução do programa. Contudo, em um dado instante ela só pode
apresentar um valor único.
O conceito de variável foi criado para permitir que através do nome (identificador) os
programas possam armazenar, localizar e manipular as informações na memória dos
computadores. São, portanto, formadas por três atributos: um nome (identificador), um
tipo de dado, e um valor.
Na linguagem C, as variáveis são declaradas após a especificação de seus tipos, como
pode ser observado nos exemplos a seguir.
float total;
int idade, cont;
A primeira linha da declaração de variáveis do exemplo cria uma variável chamada total,
que irá armazenar valores do tipo float (real); na segunda linha, são criadas duas
variáveis para armazenar valores do tipo int (inteiro), idade e cont. Cada uma dessas
variáveis armazenará um único valor por vez.
As variáveis podem ser inicializadas no momento da sua declaração, ou seja, pode-se
dar um valor inicial à variável já na sua declaração, e esse valor será armazenado em
memória. Para isso, coloca-se o sinal de atribuição (=) seguido do valor desejado, como
no exemplo apresentado a seguir, em que cont é inicializada com 0 e resposta com S. É
importante destacar que os dados atribuídos a variáveis do tipo caractere são
envolvidos por aspas simples.
int cont = 0;
char resposta = 'S';
O local em que as variáveis são declaradas definem o seu escopo, que pode ser global
ou local. As variáveis de escopo global, denominadas variáveis globais, são declaradas
fora de qualquer função, inicializadas automaticamente com 0 (zero) e podem ser
usadas em qualquer ponto do programa. As variáveis locais são declaradas dentro de
uma função, não são inicializadas automaticamente e valem enquanto essa função
estiver ativa. As variáveis de escopo local têm preferência em relação às de escopo
global.
https://sites.google.com/ulbra.br/g000005gs001/t001
DEFINIÇÃO DE CONSTANTES
Uma constante irá representar um valor fixo, previamente definido pelo programador e
inalterável no programa. Uma das formas de definir constantes em C é a partir da
diretiva #define, seguida do nome da constante e do valor que ela representará no
programa. No exemplo a seguir, apresenta-se a declaração da constante pi, cujo valor é
definido como 3.141516. Dessa forma, o programador usará pi no programa ao invés de
usar 3.141516.
#define pi 3.141516
INFOGRÁFICO
https://sites.google.com/ulbra.br/g000005gs001/t001
https://sites.google.com/ulbra.br/g000005gs001/t001
REFERÊNCIAS
ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. Fundamentos da Programação de
Computadores. 2. ed. São Paulo: Prentice Hall, 2007.
DEITEL, Paul; DEITEL, Harvey. C: como programar. 6.ed. São Paulo: Pearson Prentice
Hall, 2011.
FORBELLONE, André Luís; EBERSPACHER, Henri. Lógica de Programação: a construção
de algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall, 2005.
GOODRICH, Michael T.; TAMASSIA, Roberto. Projeto de Algoritmos. Porto Alegre:
Bookman, 2004.
CRÉDITOS
Coordenação e Revisão Pedagógica: Claudiane Ramos Furtado
Design: Luiz Specht
Diagramação: Marcelo Ferreira
Ilustrações: Marcelo Germano
Revisão ortográfica: Ane Arduim
Produzido por Núcleo de Audiovisual e Tecnologias Educacionais (NATE) - ULBRA EAD
Universidade Luteranado Brasil
Todos os direitos reservados.
https://sites.google.com/ulbra.br/g000005gs001/t001

Continue navegando