TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Algoritimo E Programação

Artigo: Algoritimo E Programação. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  2/3/2015  •  2.156 Palavras (9 Páginas)  •  398 Visualizações

Página 1 de 9

LINGUAGEM C

Apresentação

Habitualmente antes de resolvermos exemplos ou exercícios, elaboraremos o algoritmo, que nada mais é que uma seqüência de operações cuja execução produz um resultado que é a resposta de um problema proposto.

Um programa de computador nada mais é que a codificação de um algoritmo numa linguagem de programação. Linguagens como C, Pascal, BASIC, ALGOL, Clipper, COBOL, etc., são chamadas de procedurais, devido ao fato das instruções serem executadas de forma seqüencial, enquanto que as linguagens baseadas no conceito de eventos como C++, Visual BASIC, Visual Objects, utilizam outra estratégia de programação (Programação Orientada ao Objeto), em C utilizaremos a metodologia estruturada.

Simulação

Por melhor que seja o conhecimento do Analista/Programador, este só poderá ter certeza que sua “estratégia” foi bem sucedida após testar o programa num computador.

Bons programadores têm poucas surpresas quando testam seus programas, fazendo normalmente umas poucas correções para que o programa funcione de maneira adequada.

Programadores iniciantes criam uma estratégia (algoritmo) muitas vezes ineficiente e normalmente “correm” para o computador visando testar o programa e acabam por perder um tempo enorme. Não é raro ouvirmos de iniciantes a frase “Nunca conseguirei fazer um programa ...”. Certamente, não conseguirá mesmo, caso não tenha uma estratégia definida.

Imagine uma “tarefa” muito simples, como por exemplo fritar um ovo. Caso você não soubesse “operar” o fogão provavelmente não conseguiria acendê-lo. Se nunca tivesse visto alguém quebrar um ovo, provavelmente não conseguiria fazê-lo sem perder parte de seu conteúdo. A fritura seria algo desastroso, caso você desconhecesse a utilidade do óleo. E o sabor seria frustrante, caso o tempero utilizado fosse açúcar.

O Programador iniciante que não simula seu algoritmo, se compara ao cozinheiro desastrado descrito acima. E como simular?

Basta “agirmos” como se fossemos o próprio computador, ou seja devemos “fingir” que nosso raciocino é baseado no conteúdo de variáveis. De fato, usualmente antes de tomarmos alguma decisão analisamos uma série de fatores (as tais variáveis dos programas). Desta forma, caso fizermos uma análise apurada sobre os conteúdos das variáveis, poderemos “descobrir” a função de cada programa.

Observação Final: Obviamente caso você se sinta seguro a resolver diretamente o problema na linguagem diretamente no computador, faça isto. Porém se surgirem dificuldades, não se esqueça de fazer o algoritmo e a simulação. Lembre-se do cozinheiro desastrado, que se tivesse consultado uma simples receita (todo algoritmo não passa de uma receita sofisticada), poderia ao menos fritar o ovo!

Introdução

Desenvolvida nos laboratórios Bell na década de 70, a partir da Linguagem B (criada no final dos anos 60 por Ken Thompson), que foi reformulada por Brian Kernighan e Dennis M. Ritchie e posteriormente renomeada para C.

Podendo ser considerada como uma linguagem de médio nível, pois possui instruções que a tornam ora uma linguagem de alto nível e estruturada como o Pascal, se assim se fizer necessário, ora uma linguagem de baixo nível pois possui instruções tão próximas da máquina, que só o Assembler possui.

De fato com a linguagem C podemos construir programas organizados e concisos (como o Pascal), ocupando pouco espaço de memória com alta velocidade de execução (como o Assembler). Infelizmente, dada toda a flexibilidade da linguagem, também poderemos escrever programas desorganizados e difíceis de serem compreendidos (como usualmente são os programas em BASIC).

Devemos lembrar que a linguagem C foi desenvolvida a partir da necessidade de se escrever programas que utilizassem recursos próprios da linguagem de máquina de uma forma mais simples e portável que o assembler.

A inúmeras razões para a escolha da linguagem C como a predileta para os desenvolvedores “profissionais”. As características da Linguagem C servirão para mostrar o porquê de sua ampla utilização.

Características da Linguagem C

• Portabilidade entre máquinas e sistemas operacionais.

• Dados compostos em forma estruturada.

• Programas Estruturados.

• Total interação com o Sistema Operacional.

• Código compacto e rápido, quando comparado ao código de outras linguagem de complexidade análoga.

A estrutura básica de um programa em C

Um programa em C consistem em uma ou várias “funções”.

Vamos começar pelo menor programa possível em C:

Main( )

{

}

Este programa compõe-se de uma única função chamada main

Instruções de Programa

Vamos adicionar uma instrução ao nosso programa.

main( )

{

printf("olá"); /* mostra na tela a mensagem Olá*/

}

Comentários

Os comentários servem principalmente para documentação do programa e são ignorados pelo compilador, portanto não irão afetar o programa executável gerado. Os comentários iniciam com o símbolo /* e se estendem até aparecer o símbolo */. Um comentário pode aparecer em qualquer lugar no programa onde possa aparecer um espaço em branco e pode se estender por mais de uma linha.

Uma Visão Geral - Instruções de Entrada e Saída

Toda linguagem de programação de alto nível suporta o conceito de “Tipo de Dado”, que define um conjunto de valores que a variável pode armazenar, e os tipos mais comuns encontrados nas linguagens de programação, ou seja, inteiro, real e caractere. Diferentemente do Pascal que é fortemente tipada onde a mistura entre um número inteiro e um real pode causar erros, C suporta livremente tipos caracteres e inteiros na maioria das expressões!

Por ser capaz de manipular bits, bytes e endereços, C se adapta bem a programação a nível de sistema. E tudo isto é realizado por apenas 43 palavras reservadas no Turbo C, 32 nos compiladores padrão ANSI e 28 no C Padrão. Como curiosidade, o IBM BASIC que é um interpretador BASIC com fins puramente educativos tem 159 comandos.

Fundamentos de C

Desta forma a orientação que adotaremos neste início do curso se deterá mais na compreensão geral do programa, do que a análise detalhada de cada comando ou função utilizada. De fato apresentaremos alguns comandos fundamentais para a escrita de programas básicos e apenas nos utilizaremos sua sintaxe mais elementar (posteriormente estudaremos cada um deles mais detidamente), construiremos os primeiros programas do curso.

Exemplo 1: Programa mostra a idade.

/* Exemplo Idade */

main()

{

int idade;

idade = 40;

printf(“Sua idade e’ %d anos. \n”, idade);

}

Este programa simplesmente imprime “Sua idade e’ 40 anos.” saltando uma linha (/n) em seu término.

Diretiva #Include

Toda a diretiva, em C, começa com o símbolo # no início da linha. A diretiva #include inclui o conteúdo de um outro arquivo dentro do programa atual, ou seja, a linha que contêm a diretiva é substituída pelo conteúdo do arquivo especificado.

Sintaxe:

#include <nome do arquivo>

ou

#include “nome do arquivo”

O primeiro caso é o mais utilizado. Ele serve para incluir alguns arquivos que contêm declaração das funções da biblioteca padrão, entre outras coisas. Estes arquivos, normalmente, possuem a extensão .h e se encontram em algum diretório pré-definido pelo compilador (/usr/include no Linux; c:\dev-c++\include no Windows com o Dev-C++). Sempre que o programa utilizar alguma função da biblioteca-padrão deve ser incluido o arquivo correspondente. A tabela a seguir apresenta alguns dos principais .h da linguagem C:

Arquivo Descrição

stdio.h ->Funções de entrada e saída (I/O)

string.h ->Funções de tratamento de strings

math.h ->Funções matemáticas

ctype.h ->Funções de teste e tratamento de caracteres

stdlib.h ->Funções de uso genérico

A segunda forma, onde o nome do arquivo aparece entre aspas duplas, serve normalmente para incluir algum arquivo que tenha sido criado pelo próprio programador ou por terceiros e que se encontre no diretório atual, ou seja, no mesmo diretório do programa que está sendo compilado.

Comandos Básicos - 1a. Parte

Instruções de Entrada e Saída

O objetivo de escrevermos programas é em última análise, a obtenção de resultados (Saídas) depois da elaboração de cálculos ou pesquisas (Processamento) através do fornecimento de um conjunto de dados ou informações conhecidas (Entradas).

printf()

É um dos mais poderosos recursos da linguagem C, printf() servirá basicamente para a apresentação de dados no monitor.

Sua forma geral será: printf(“string de controle”, lista de argumentos);

Necessariamente você precisará ter tantos argumentos quantos forem os comandos de formatação na “string de controle”. Se isto não ocorrer, a tela exibirá sujeira ou não exibirá qualquer dado.

Exemplo: Dado um número, calcule seu quadrado.

#include<stdio.h>

#include<conio.h>

main()

{

int numero;

numero=10;

printf(“O %d elevado ao quadrado resulta em %d. \n”, numero,numero*numero);

getch();

}

A diretiva #include foi utilizada, pois usamos o comando printf (stdio.h) e o comando getch(conio.h)

Observemos o Quadro de Operadores Especiais suportados por printf( ):

Código Significado

\b Retrocesso (BackSpace)

\f Salto de Página (Form Feed)

\n Linha Nova (Line Feed)

\t Tabulação Horizontal (TAB)

\x Representação de byte na base hexadecimal

Exemplo: printf(“\x41”); causa a impressão da letra A na tela.

Exercícios:

1. Mostre na tela o seu nome.

2. Some 10 com 15 e imprima na tela a seguinte frase: “O resultado da soma é: “ mostrando o resultado.

3. Faça a multiplicação entre 10 e 15 e mostre na tela o resultado.

4. Calcule a área de um retângulo que possui 30 cm de base e 20cm de altura. Mostre uma mensagem com o resultado do calculo.

5. Calcular a média de uma disciplina cujas notas foram 5 e 7.5. Mostre na tela as notas e o resultado da média.

scanf( )

Uma das mais importantes e poderosas instruções, servirá basicamente para promover leitura de dados (tipados) via teclado.

Sua forma geral será: scanf(“string de controle”, lista de argumentos);

Posteriormente ao vermos sua sintaxe completa, abordaremos os recursos mais poderosos da <string de controle>, no momento bastará saber que:

%c - leitura de caracter

%d - leitura de números inteiros

%f - leitura de números reais

%s - leitura de caracteres

A lista de argumentos deve conter exatamente o mesmo número de argumentos quantos forem os códigos de formatação na <string de controle>. Se este não for o caso, diversos problemas poderão ocorrer - incluindo até mesmo a queda do sistema - quando estivermos utilizando programas compilados escritos em C.

Cada variável a ser lida, deverá ser precedida pelo caracter &, por razões que no momento não convém explicarmos, mas que serão esclarecidas no decorrer do curso. Para seqüência de caracteres (%s), o caracter & não deverá ser usado.

Exemplo: Programa para ler e mostrar uma idade

/* Exemplo Lê e Mostra Idade */

main()

{

int idade;

char nome[30];

printf(“Digite sua Idade: “);

scanf(“%d”,&idade);

printf(“Seu Nome: “);

scanf(“%s”,nome); /* Strings não utilizar ‘&’ na leitura */

printf(“%s sua idade e’ %d anos. \n”, nome, idade);

}

Exercícios

Nunca esqueça que os comandos da linguagem C devem ser escritos SEMPRE em letras minúsculas!

1 - Elabore programa que pergunte o seu nome e imprima na tela.

2 - Perguntar o nome da pessoa e o sobrenome e imprimir na tela o nome sobrenome

3 - Leia dois números e apresente seu produto.

4 – Leia dois números e apresenta a sua subtração.

5 - Leia o nome e as duas notas de um aluno. Apresente seu nome e sua média.

Tipos de Dados

No momento dispomos de conhecimento para elaboração de programas básicos para construção de pequenos programas, pois conhecemos instruções de entrada de dados (scanf) e de saída (printf).

Veremos a seguir Tipos de Dados da linguagem C, variáveis, operadores, e demais instruções básicas. Devemos procurar compreender a utilidade das declarações que serão exibidas a seguir, relacionando estes recursos com os exemplos e exercícios vistos anteriormente.

Semelhante ao BASIC, Pascal e COBOL, a linguagem C necessita que todas as variáveis tenham seus tipos definidos. C aceita tipos básicos (caractere, inteiro, ponto flutuante, dupla precisão e sem valor) e modificadores (sinal,sem sinal, longo e curto) que podem alterar os tipos básicos. Observemos as tabelas abaixo para melhor entendimento:

Tabela de Tamanhos e Escala de Tipos Básicos

Tipo Extensão Escala Numérica em bits

Char 8 0 a 255

Int 16 -32768 a 32767

float 32 3.4E-38 a 3.4E+38

double 64 1.7E-308 a 1.7E+308

void 0 sem valor

Exemplo : Mesmo número com 2 representações diferentes.

main()

{

float a;

printf(“Digite um numero: “);

scanf(“%f”,&a);

printf(“%f %e”,a,a);

}

Simulando obtemos:

Digite um numero: 65

65.000000 6.500000E+01

Variáveis e Operadores

Variáveis

Todas as variáveis devem ser declaradas desta forma: “tipo nome_de_variáveis;”

Exemplos:

int i,j,l;

short int si;

double balanco, consolidacao;

char nome[30];

De maneira semelhante ao que ocorre no Pascal e demais linguagens estruturadas, em C as variáveis tem seus valores localizados nas rotinas onde foram declaradas (escopo).

Basicamente, as variáveis podem ser declaradas fora das funções (globais) que valem para todas as funções do programa. Podem ser declaradas dentro de uma função (locais) sendo desconhecida no restante do programa. Além disso podem ser usadas para passagem de valores entre funções (parâmetros).

Operadores

C é uma das linguagens com maior número de operadores, devido possuir todos os operadores comuns de uma linguagem de alto nível, porém também possuindo os operadores mais usuais a linguagens de baixo nível. Para fins didáticos, dividiremos os operadores em aritméticos, lógicos e de bits. No momento abordaremos apenas as duas primeiras classes.

Operadores Aritméticos

Operador Ação

+ Adição

* Multiplicação

/ Divisão

% Resto de Divisão Inteira

- Subtração o menos unário

-- Decremento

++ Incremento

Operadores Relacionais e Lógicos

Operador Ação

> Maior que

>= Maior ou igual que

< Menor que

<= Menor ou igual que

== Igual a

!= Diferente de

&& Condição “E”

|| Condição “OU”

! Não

Observação: Em C o resultado da comparação será ZERO se resultar em FALSO e DIFERENTE DE ZERO no caso de obtermos VERDADEIRO num teste qualquer. Programadores experientes utilizam-se desta conclusão em alguns programas, onde “inexplicavelmente” algo é testado contra ZERO.

Exemplo: Irá calcular a média de um aluno sendo que ele possua três notas, a média é a soma das notas dividida por três.

#include<stdio.h>

#include<conio.h>

void main()

{

clrscr();

float nota1;

float nota2;

float nota3;

float media;

printf("\n Digite a primeira nota..: ");

scanf("%f",&nota1);

printf("\n Digite a segunda nota...: ");

scanf("%f",&nota2);

printf("\n Digite a terceira nota..: ");

scanf("%f",&nota3);

media=(nota1+nota2+nota3)/3;

printf("\n\n Sua média ............:%6.2f",media);

getch();

}

...

Baixar como  txt (15.2 Kb)  
Continuar por mais 8 páginas »