Conversão de Algoritmos em C

Conversão de Algoritmos em C

(Parte 1 de 3)

Algoritmos e Programação 1 Francisco Rapchan rapchan@terra.com.br

Convertendo Algoritmos para a Linguagem C

Notas de Aula

Prof. Francisco Rapchan w.geocities.com/chicorapchan rapchan@terra.com.br

O objetivo deste texto é mostrar alguns programas em C, dando uma breve descrição de seu funcionamento para que o leitor possa se “acostumar” com a forma dos programas nessa linguagem. A explicação sobre o funcionamento e uso de cada recurso da linguagem será visto ao longo do curso.

O C é uma linguagem de alto nível de uso genérico desenvolvida por programadores para ser usada por programadores. Em outras palavras: não é uma linguagem para uso didático e sim para trabalhar.

Ao longo do tempo, grandes sistemas têm sido desenvolvidos em C como, por exemplo, o UNIX, o Windows e o Linux. Essa linguagem foi também usada como base para desenvolver novas linguagens, entre elas a linguagem C++, Java.

A primeira versão de C foi criada por Dennis Ritchie em 1972 nos laboratórios Bell para ser incluído como um dos softwares a serem distribuídos juntamente com o sistema operacional Unix do computador PDP-1, na equipe coordenada por Ken Thompson.

Alguns marcos históricos: ¾ 1969 – Desenvolvimento do UNIX (em um computador PDP 7 em linguagem Assembly).

¾ 1969 – Desenvolvimento da linguagem BCPL (muito próxima do Assembly).

¾ 1970 – Denis Ritchie cria a linguagem B a partir do BCPL nos laboratórios da Bell Telephones.

¾ 1971 – Primeiro desenvolvimento da linguagem C, sucessora do B (o C é a 2ª letra de BCPL).

¾ 1973 – O sistema operacional UNIX é reescrito em linguagem C.

¾ 1978 – Primeira edição do livro “The C Programming Language”, Kernighan & Ritchie.

¾ 1980 – A linguagem C é padronizada pelo American National Standard Institute: surge o ANSI C.

¾ 1992 – Surge o C++, uma evolução da linguagem C incorporando conceitos da orientação a objetos.

Algoritmos e Programação 2 Francisco Rapchan rapchan@terra.com.br

1. Faça um programa que leia dois números que o usuário do computador digitará no teclado, some-os e mostre o resultado na tela do computador.

Portugol C algoritmo "Soma de dois números" var A, B, Soma: inteiro inicio

Leia (A) Leia (B)

Soma <- A + B Escreva (Soma)

Fimalgoritmo

#include <stdio.h> int main() { int A, B, Soma; scanf ("%d",&A); scanf ("%d",&B);

Soma = A + B; printf ("Soma: %d \n", Soma); return (0) }

Algumas observações.

- Nas linguagens reais como Pascal e C são necessárias algumas bibliotecas para que o código executável possa ser executado corretamente. No caso do C precisaremos da biblioteca stdio.h que contém informações sobre as funções de leitura do teclado (scanf) e de escrita no vídeo (printf). Para incluir estas bibliotecas, em usamos #include.

- Observe que ao final de cada linha do programa C há um ponto-e-vírgula (;).

- Em C, main( ) representa o programa principal que inicia com { e termina com }. Na verdade main ( ) é uma função que retorna um valor inteiro.

- É importante notar que em C letra maiúscula e letra minúscula são diferentes. Assim, uma variável chamada Soma é diferente de outra chamada de soma.

- O sinal de atribuição em C é o igual =. Para indicar o igual em uma decisão usamos ==.

- A função printf é usada em C para escrever dados na tela. - Em C, o parêntese { equivale ao início de um bloco de comandos e } equivale ao fim de um bloco de comandos.

- A função main do C é a primeira a ser executada pelo programa. Equivale ao programa principal em outras linguagens. Todo programa deve ter uma única função main e ela é sempre do tipo int. Ao final da função main devemos ter um return (0) que indica ao sistema operacional que o programa terminou bem.

- Tipos em C

Tipo Entrada e Saída Descrição int %i ou %d inteiro decimal float %f Real (ponto flutuante) char %c caracter simples %s string

Algoritmos e Programação 3 Francisco Rapchan rapchan@terra.com.br

2. Faça um programa que leia dois números e mostre se são iguais. Se não forem iguais, mostre o maior.

Portugol C

ALGORITMO "Mostra o maior"

Var numero_um, numero_dois: real inicio Leia (numero_um) Leia (numero_dois)

escreva ("São iguais")
Se numero_um > numero_dois entao
escreva (numero_um)
senao
escreva (numero_dois)
fimse

se numero_um = numero_dois entao senao fimse fimalgoritmo

#include <stdio.h> int main() { float numero_um, numero_dois; scanf ("%f",&numero_um); scanf ("%f",&numero_dois);

printf ("Sao iguais");

if (numero_um == numero_dois) { } else

{ if (numero_um > numero_dois){

printf ("O maior: %f", numero_um);
}

else{

printf ("O maior: %f", numero_dois);
}

} return (0); }

A instrução if assume em C as duas formas básicas:

if (expressão) instrução; ou:

if (expressão) instrução_1; else instrução_2;

Em C, os comandos internos à cada estrutura deve começar e terminar com chaves. Assim, para o comando IF:

if (<expressão-booleana>) { comando1; comandoN;

(Parte 1 de 3)

Comentários