algoritmos - unesp: câmpus de guaratinguetá · ‐dada a equação de 2º grau ... saída deve...

30
Algoritmos e a Linguagem C | Introdução à Computação 1 de 31 2014 © MdaS Algoritmos Algoritmos Algoritmos Algoritmos Para encontrar a raiz de uma equação quadrática, são necessários alguns passos detalhados: Dada a equação de 2º grau Subtraia c em ambos os lados Multiplique ambos os lados por 4a Aplique a propriedade distributiva Some ambos os lados por Aplique o TQP no lado esquerdo Radicie ambos os lados Subtraia b em ambos os lados Divida 2a em ambos os lados

Upload: dinhlien

Post on 11-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Algoritmos e a Linguagem C | Introdução à Computação 1 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� Para encontrar a raiz de uma equação quadrática, são necessários alguns passos detalhados:

‐ Dada a equação de 2º grau

‐ Subtraia c em ambos os lados

‐ Multiplique ambos os lados por 4a

‐ Aplique a propriedade distributiva

‐ Some ambos os lados por b²

‐ Aplique o TQP no lado esquerdo

‐ Radicie ambos os lados

‐ Subtraia b em ambos os lados

‐ Divida 2a em ambos os lados

Algoritmos e a Linguagem C | Introdução à Computação 2 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� Os passos necessitam ser explicitamente detalhados para que a prova seja concretizada e bem compreendida

� Caso falte algum detalhe na demonstração, o resultado final pode ser comprometido� Tente ocultar um destes detalhes da demonstração e veja se conseguirá obter o mesmo resultado...

Algoritmos e a Linguagem C | Introdução à Computação 3 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� Algoritmos são conjuntos finitos de instruções que obedecem a uma ordem sequencial que, a partir de um conjunto de dados de entrada, produzem um resultado específico

� Características� Finitude

� Exatidão

� Determinação de entradas e saídas

� Efetividade

Algoritmos e a Linguagem C | Introdução à Computação 4 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� FinitudeFinitudeFinitudeFinitude – Um algoritmo deve ter:� Terminar após um nnnnúúúúmero finito de passosmero finito de passosmero finito de passosmero finito de passos

� Terminar após uma quantidade finita de tempoquantidade finita de tempoquantidade finita de tempoquantidade finita de tempo

� Deve ser executado com uma quantidade finita de recursosquantidade finita de recursosquantidade finita de recursosquantidade finita de recursos

Algoritmos e a Linguagem C | Introdução à Computação 5 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� ExatidãoExatidãoExatidãoExatidão – Os passos do algoritmo devem ser:� Definidos com precisão

� A sequência dos passos deve ser determinada de forma clara

� Não podem admitir ambiguidade

Corinthianos Torcedores botaram fogo no depósito que abalou as estruturas do

estádio.

Não foi o depósito que abalou as estruturas do estádio,

mas o fato de terem colocado fogo nele.

Algoritmos e a Linguagem C | Introdução à Computação 6 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� EntradasEntradasEntradasEntradas:� Um algoritmo deve operar sobre um ou mais valores externos

� Os valores correspondem aos dados necessários para iniciar a execução do algoritmo

� Em alguns casos, são parte integrante do algoritmo

� SaSaSaSaíííídasdasdasdas: � Um algoritmo deve produzir uma informação

� Saída deve ser produzida até a execução da última instrução do algoritmo, com base na entrada fornecida

Algoritmos e a Linguagem C | Introdução à Computação 7 de 312014 © MdaS

AlgoritmosAlgoritmosAlgoritmosAlgoritmos

� EfetividadeEfetividadeEfetividadeEfetividade� Deve cumprir a tarefa a ser realizada

� As instruções devem ser� Simples

� Suficientes

� Executáveis

Algoritmos e a Linguagem C | Introdução à Computação 8 de 312014 © MdaS

A Linguagem CA Linguagem CA Linguagem CA Linguagem C

� C, como toda linguagem de programação, necessita de um ambiente para que o código seja desenvolvido

� É uma das linguagens mais utilizadas, devido à:� Eficiência

� Uso extensivo de funções

� Originou várias outras linguagens de programação

� Todo arquivo a ser compilado deve possuir aextensão (.c)� Arquivo-texto que deve seguir a sintaxe de modo correto

� O produto final é um arquivo executável (.exe)

Algoritmos e a Linguagem C | Introdução à Computação 9 de 312014 © MdaS

Principais ElementosPrincipais ElementosPrincipais ElementosPrincipais Elementos

� Em um programa em C, é necessário que haja a chamada de as bibliotecas que contém funções utilizadas pelo compilador:

� É precedida pela expressão#include e entre os sinais <>

#include <stdio.h>

#include <stdlib.h>

Uso do cursor em telaconio.h

Uso de cadeias de caracteresstring.h

Uso de caracteresctype.h

Uso de dados em data e horatime.h

Funções matemáticasmath.h

Alocação de memória e comandos do sistemastdlib.h

Entrada e saída de dadosstdio.h

FuncionalidadeFuncionalidadeFuncionalidadeFuncionalidadeBibliotecaBibliotecaBibliotecaBiblioteca

Algoritmos e a Linguagem C | Introdução à Computação 10 de 312014 © MdaS

A funA funA funA funçççção ão ão ão main()

� Em C, alguns elementos são fundamentais para o seu funcionamento, assim como a estrutura do algoritmo

� Um programa em C é um conjunto de blocos de instruções ou funções determinadas pelo usuário...� ... porém, TODOS os programas em C possui a função int main()

� Cada função, logo após o seu cabeçalho, deve possuir todos os seus comandos entre chaves {}

int main()

{

//INSTRUÇÕES

}

Algoritmos e a Linguagem C | Introdução à Computação 11 de 312014 © MdaS

SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores

� Exibe em tela a resposta dada pelo programa ao usuário

� Representado pela função printf()� Poderá retornar apenas uma mensagem:

printf ("Qual é a sua idade? ");

� Permite que sejam incluídos caracteres especiais:printf(" Eu \n Tu \n Ele \n Nós \n Vós \n Eles");

printf("Nome Completo:\n");

Algoritmos e a Linguagem C | Introdução à Computação 12 de 312014 © MdaS

SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores

� Alguns caracteres especiais são utilizados na escrita na tela:

Caractere \\\

Caractere "\"

Caractere nulo\0

Início da linha (Home)\r

Alerta sonoro (beep)\a

Novo formulário\f

Apaga caractere (Backspace)\b

Tabulação\t

Nova linha\n

OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo

Algoritmos e a Linguagem C | Introdução à Computação 13 de 312014 © MdaS

ExemploExemploExemploExemplo

� Exiba uma mensagem inicial para um programa em C

� O system("PAUSE"); é um comando do sistema que para a execução do programa. Neste caso, ele serve para evitar que o programa execute os seus comandos e a janela desapareça.

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Ola, seja bem vindo ao nosso programa!\n");

system("PAUSE");

}

Algoritmos e a Linguagem C | Introdução à Computação 14 de 312014 © MdaS

VariVariVariVariááááveisveisveisveis

� As variáveis são divididas em tipos numéricos e não--numéricos

� Dentre os tipos numéricos, os mais utilizados são:� int: reservado para números inteiros

� float: reservado para números de ponto flutuante

� double: reservado para números de ponto flutuante de precisão dupla

� O tipo char é utilizado para definir uma variável não--numérica, ou seja, uma variável textual

Algoritmos e a Linguagem C | Introdução à Computação 15 de 312014 © MdaS

VariVariVariVariááááveisveisveisveis

� Eis os tipos primitivos de variáveis, com variantes:� unsigned (sem sinal);

� short (mais curta);

� long (mais longa):

Algoritmos e a Linguagem C | Introdução à Computação 16 de 312014 © MdaS

DeclaraDeclaraDeclaraDeclaraçççção de Varião de Varião de Varião de Variááááveisveisveisveis

� A declaração de variáveis em C deve ser feita abaixo da chamada de biblioteca de funções:

� Primeiro, sempre é o tipo

� Em seguida, os nomes das variáveis deste tipo

� Sempre termina com um ponto e vírgula

tipo var1, var2;

Algoritmos e a Linguagem C | Introdução à Computação 17 de 312014 © MdaS

DeclaraDeclaraDeclaraDeclaraçççção de Varião de Varião de Varião de Variááááveisveisveisveis

� Procure dar nomes de fácil compreensão para as variáveis � que você e outros entendam

� Devem SOMENTE conter letras, números ou a sublinha ou underline ( _ )

� SEMPRE se inicia com uma letra

� Nada de espaços, letras acentuadas e outros tipos de caracteres especiais

Algoritmos e a Linguagem C | Introdução à Computação 18 de 312014 © MdaS

Entrada de ValoresEntrada de ValoresEntrada de ValoresEntrada de Valores

� Utilizado para receber dados digitados pelo usuário

� São armazenados em variáveis� Representada pela função scanf()

scanf("expressao de controle", &variavel);

� Note que:� A variável deve sempre ser precedida pelo &

� Sempre deve vir após a vírgula

� A expressão sempre deve ser concluída com um ponto e vírgula!

� Mas, o que é expressão de controle?

Algoritmos e a Linguagem C | Introdução à Computação 19 de 312014 © MdaS

Entrada de ValoresEntrada de ValoresEntrada de ValoresEntrada de Valores

� Expressão de controle indica que tipo de dados devem ser lidos na variável

Caractere %%%

Representação hexadecimal%x

Representação octal%o

Número em notação científica%e

Número de ponto flutuante (real)%f

Número sem sinal (unsigned)%u

Número inteiro%d

Cadeia de caracteres (string)%s

Caractere simples%c

OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo

Algoritmos e a Linguagem C | Introdução à Computação 20 de 312014 © MdaS

AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores

� Utilizado para atribuir a variáveis:� Valores pré-definidos

� Resultados de expressões

� Representados pelo símbolo =

� Significa que a variável do lado esquerdo receberá o resultado expresso no lado direito� Sempre terminada com ponto e vírgula

x = a + b – 2;

y = "Meu amor por você é...";

z = "Falso";

Algoritmos e a Linguagem C | Introdução à Computação 21 de 312014 © MdaS

AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores

� Operações matemáticas � Funções matemáticas� Biblioteca <math.h>

Maior ou igual>=

Menor ou igual<=

Maior>

Menor<

Diferente!=

Igual==

Resto%

Incremento++

Divisão/

Multiplicação*

Subtração-

Adição+

OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo

xypow(x,y)

Raiz cúbicacbrt()

Raiz quadradasqrt(x)

Quadradosqr(x)

Arredondamento para cimafloor(x)

Arredondamento para baixoceil(x)

Valor absolutoabs(x)

Logaritmo naturalln(x)

Cossenocos(x)

Senosen(x)

exexp(x)

OperaOperaOperaOperaççççãoãoãoãoFunFunFunFunççççãoãoãoão

Algoritmos e a Linguagem C | Introdução à Computação 22 de 312014 © MdaS

AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores

� Precedência nas operações matemáticas:� 1º: funções matemáticas

� 2º: *, / e %

� 3º: + e -

� Precedência pode ser alterada com o uso de parênteses

� O separador decimal é sempre o ponto (.)raiz2 = 1.41;

centavos = 0.25 + 5 * 0.10;

----999925252525ResultadoResultadoResultadoResultado

c = (5 + 4) * (7 – 8);c = 5 + 4 * 7 – 8;OperaOperaOperaOperaççççãoãoãoão

Algoritmos e a Linguagem C | Introdução à Computação 23 de 312014 © MdaS

SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores

� A função printf()também:� Pode retornar apenas uma mensagem:

printf ("Entre com sua idade: ");

� Ou pode retornar o valor de uma variável

� Utilizando expressões de controleprintf ("Idade: %f", idade);

printf ("Nome: %s. Idade: %f", nome, idade);

printf ("Nome Completo: \n %s", nome_compl);

Algoritmos e a Linguagem C | Introdução à Computação 24 de 312014 © MdaS

ExemploExemploExemploExemplo

� Calcular a média aritmética entre dois números

#include <stdio.h>

#include <stdlib.h>

float n1, n2, media;

int main()

{

printf("Entre com um numero: ");

scanf("%f", &n1);

printf("Entre com outro numero: ");

scanf("%f", &n2);

media = (n1 + n2)/2;

printf("Media = %f", media);

system("PAUSE");

}

Algoritmos e a Linguagem C | Introdução à Computação 25 de 312014 © MdaS

ExemploExemploExemploExemplo

� Calcular o perímetro e a área de um quadrado de lado ℓ

#include <stdio.h>

#include <stdlib.h>

float l, p, a;

int main()

{

printf("Medida do lado do quadrado: ");

scanf("%f", &l);

p = 4*l;

a = l*l;

printf("Perimetro = %f\n", p);

printf("Area = %f\n", a);

system("pause");

}

Algoritmos e a Linguagem C | Introdução à Computação 26 de 312014 © MdaS

ExemploExemploExemploExemplo

� Elaborar um algoritmo que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário

#include <stdio.h>

#include <stdlib.h>

float sal, perc, novo_sal, aumento;

int main()

{

printf("Entre com o salario e o percentual de aumento: ");

scanf("%f %f", &sal, &perc);

aumento = sal*(perc/100);

novo_sal = sal + aumento;

printf("Novo salario: R$ %f com aumento de R$ %f", novo_sal, aumento);

system("pause");

}

Algoritmos e a Linguagem C | Introdução à Computação 27 de 312014 © MdaS

Ambiente de ExecuAmbiente de ExecuAmbiente de ExecuAmbiente de Execuççççãoãoãoão� O ambiente de execução a ser utilizado é o Bloodshed Dev C++

� (Iniciar > Programas > Bloodshed Dev C++ > Dev C++)

� Para criar um novo programa, vá no menu � Arquivo > Novo > Arquivo Fonte� Ou utilize o atalho CtrlCtrlCtrlCtrl + N+ N+ N+ N

Algoritmos e a Linguagem C | Introdução à Computação 28 de 312014 © MdaS

Ambiente de ExecuAmbiente de ExecuAmbiente de ExecuAmbiente de Execuççççãoãoãoão

� Embora o programa chama-se Dev C++, o foco da disciplina é implementação de programas utilizando a linguagem C

� Neste caso, é importante salvar os arquivos com a extensão .c

� A extensão .cpp pode permitir comandos inválidos em um programa em C

C++C

Algoritmos e a Linguagem C | Introdução à Computação 29 de 312014 © MdaS

CompilaCompilaCompilaCompilaççççãoãoãoão

� Para compilar (criar o programa), salve o código-fonte:� Arquivo > Salvar como...� Ou utilize o atalho CtrlCtrlCtrlCtrl + S+ S+ S+ S

� Salve em uma pasta apropriada com o nome hellohellohellohello.c.c.c.c� Preferencialmente, em uma pasta no diretório Z:Z:Z:Z: ou pen-drive� Não salve em diretórios C:

� Senão você não conseguirá abrir depois...

� Pressione a tecla F9 e verá o resultado...� Para abrir novamente, vá em

� Arquivo > Abrir...� Ou utilize o atalho CtrlCtrlCtrlCtrl + O+ O+ O+ O� Escolha o arquivo no diretório onde ele está alocado

Algoritmos e a Linguagem C | Introdução à Computação 30 de 312014 © MdaS

ExercExercExercExercíííícioscioscioscios

� Faça um programa em C para os seguintes casos:� a) Calcular a média de quatro notas bimestrais de um aluno

� b) Calcular o comprimento e a área de uma circunferência� considere π = 3.1415

� c) Calcular a área de um triângulo, dadas a sua base e a sua altura

� d) Calcular a raiz de uma equação de 1º grau, dados os coeficientes a e b

� ax + b = 0