Você está na página 1de 14

Contextualização

Algoritmos e TECNOLOGIA DA INFORMAÇÃO

Técnicas de Conjunto de todas as atividades e soluções


providas por recursos de computação que visam
Programação a produção, o armazenamento, a transmissão, o
Fonte: https://cutt.ly/3fFZ5fD
acesso, a segurança e o uso das informações.
Fundamentos de Algoritmos e das
Linguagens de Programação

Profa. Dra. Jenai Oliveira Cazetta

Nossa teleaula
Programas de computadores são construídos seguindo um conjunto de
regras e técnicas bastante especificas, portanto, nessa era digital, é
imprescindível que profissionais de diversas áreas aprendam essas Conceitos e Linguagens de Componentes de
ferramentas, para que possam contribuir e evoluir em sua área de introdução aos programação e um programa de
atuação. algoritmos. sua usabilidade. computador.

Programar é uma arte, portanto precisamos ter ideias claras


sobre o que devemos fazer, planejar qual a maneira mais
eficaz/criativa/elegante e sem redundâncias para que a
aplicação fique bem desenvolvida, facilitando manutenções.

Objetivo principal da lógica de programação


• Técnicas para resolução de problemas e automatização de tarefas;
• Base para o aprendizado de todas as linguagens de programação.
Princípios de
resolução de Raciocínio lógico
problemas • Sequência coerente, regular e necessária de
acontecimentos, de coisas ou fatos.

1
Objetivos
Organizar DADOS representam FATOS e não INFORMAÇÕES!
Calma,
estratégicas! MADEIRA
persistência
e prática
Solucionar
problemas!
MESA
Atingir Fonte: https://cutt.ly/EfFOiyK

objetivos!

Objetivo! Conhecimento!
Atingir eficiência e eficácia no
Regras, diretrizes, procedimentos!
uso de recursos computacionais!
Tarefas logicamente relacionadas!
Fontes: https://cutt.ly/2fFFhqE e https://cutt.ly/5fFS5z5

Princípios de resolução computacional de problemas Pode-se começar a escrever diretamente o programa que irá resolver um
Problemas podem ser abordados de várias maneiras são descritos problema, definindo várias repetições (“loops”), várias decisões e várias
especificando-se a entrada (possíveis dados) e as condições (ou relações) variáveis para armazenar e processar valores resultado desorganizado
que a saída deve satisfazer para determinada entrada. difícil ler, entender, depurar e atualizar.

Mesmo que essa primeira


abordagem funcione, o programa
desenvolvido pode ser mais
complicado do que o necessário.

Fontes: https://cutt.ly/BfFNHsI, https://cutt.ly/EfXYjud, https://cutt.ly/gfXUTAx Fonte: https://cutt.ly/EfFOiyK

O que devemos fazer?

Pensar sobre o problema;


Introdução aos
Rascunhar uma primeira solução;
algoritmos
Preocupar com os detalhes.

DOCUMENTAÇÃO

2
Algoritmo Algoritmo não computacional
(1) Processo sistemático para a resolução de um problema; FAZENDO ARROZ
Podemos
(2) Conjunto lógico de operações predefinidas que resolva um 1. Acenda o fogo; melhorar este
determinado problema de forma intuitiva; 2. Refogue os temperos; algoritmo?
(3) Sequência ordenada de passos que deve ser seguida para 3. Coloque o arroz na panela;
a realização de uma tarefa. 4. Refogue o arroz;
5. Acrescente a água; Fonte: https://cutt.ly/EfFOiyK

Os algoritmos ajudarão a Não existe somente uma forma de


6. Abaixe o fogo;
descobrir o melhor percurso realizar um algoritmo. Pode-se
7. Espere o ponto; criar outras formas ou sequências
para solucionar um problema
computacional. 8. Desligue o fogo; para obter o mesmo resultado.
9. Sirva o arroz.
Fonte: https://cutt.ly/EfFOiyK https://cutt.ly/5Wn3y2B

Algoritmo do arroz Formas de representar um algoritmo


• Entrada ingredientes para o preparo do arroz; • Linguagem natural;
• Processamento cozimento do arroz; • Diagrama de blocos;
• Saída arroz. • Pseudocódigo ou português estruturado.

Fonte: https://cutt.ly/lfXOfFJ

Linguagem natural Exemplo


• Forma falada, escrita, gesticulada... Problema: Média entre dois valores.
• Direciona de forma simples e eficiente as descrições
ENTRADA PROCESSAMENTO SAÍDA
dos problemas e suas soluções.
• Cálculo da
Fonte: https://cutt.ly/IfFC1KG
• Média
• Dois valores média
aritmética
aritmética

3
inicio
Indentação!!!
entre com o primeiro valor;
armazene o valor digitado;
entre com o segundo valor; ;e. Erros de
Português?
Diagrama de blocos e
armazene o valor digitado;
realize a soma do primeiro valor com o segundo; pseudocódigo
realize a divisao do total dos valores por dois; Fonte: https://cutt.ly/EfFOiyK

armazene o valor encontrado;


mostre na tela o resultado da media;
fim.

Diagrama de blocos TERMINAL Início ou fim de um PREPARAÇÃO Execução de um


fluxo! laço incondicional!
• Conjunto de símbolos gráficos cada um representa uma ação específica a
ser executada; ENTRADA Geralmente via PROCESSO Grupo de operações
MANUAL PREDEFINIDO
• Determina a linha de raciocínio utilizada pelo programador para resolver o teclado! relacionadas a uma
sub-rotina!
problema;
PROCESSAMENTO Execução de
• Os símbolos são padronizados ANSI. cálculos!
CONECTORES LINHA DE FLUXO
Dicas EXIBIÇÃO Mostra o resultado
• Estar atento aos níveis; de uma ação!
• Começar de cima para baixo e da esquerda para direita; DECISÃO Desvios condicionais nas operações de
• Não cruzar as linhas, principalmente as linhas de fluxos de tomada de decisão e laços condicionais
dados. para repetição de trechos do programa!

Calculando a média entre dois valores Pseudocódigo ou português estruturado


início • Ferramenta que pode auxiliar a programação;
1
• Pode ser escrito com palavras similares ao inglês (português) facilita a
valor 1 “Digite o
valor1: ” interpretação e desenvolvimento de um programa.
soma  valor1 + valor2
valor1
media  soma/2
Pode ser aplicado a
valor 2 “Digite o
valor2: ” qualquer linguagem
media “Média: “
de programação.
valor2
fim
1
Fonte: https://cutt.ly/EfFOiyK

4
Regras básicas calculo_media;
var
• Escolher um nome; real: valor1, valor2, soma, media;
• Avaliar as variáveis atenção aos seus tipos e características; inicio ; .
• Descrever de forma clara o que será armazenado; escreva (“Digite o valor 1: ”);
leia (valor1);
• Verificar se as instruções fazem sentido e se as mesmas tem uma escreva (“Digite o valor 2: ”);
sequência lógica; leia (valor2);
• Avaliar o resultado; soma  valor1 + valor2;
• Finalizar o algoritmo. media  soma/2;
escreva (“A media do aluno: ”);
escreva (media);
fim.

Converse com o usuário de seu


programa...
Armazenando dados
Diga o que você quer que ele faça e
o que obteve após
processamento!!!

Fonte: https://cutt.ly/EfFOiyK

Atividade Linguagem natural


• Construir um algoritmo para cadastrar os dados pessoais de um aluno inicio
(nome, endereço, cidade e estado) e mostrar na tela do computador o entre com o nome do aluno;
resultado; entre com a rua e o numero da residencia do aluno;
• Algoritmo em linguagem natural, em diagrama de blocos e em entre com a cidade e o estado da residencia do aluno;
pseudocódigo. mostre na tela os dados coletados do aluno;
fim.
ENTRADA PROCESSAMENTO SAÍDA

• DADOS • DADOS
PESSOAIS DO • NÃO TEM! PESSOAIS DO
ALUNO ALUNO

5
início
Diagrama de blocos cadastro_aluno; Pseudocódigo
var
caracter: nome, rua_numero, cidade_estado;
nome
1 inicio string conjunto
escreva(“Digite o nome do aluno: ”); de caracteres!!!
nome
cidade_estado leia nome;
escreva(“Digite o nome da rua e o numero: ”);
rua e numero leia rua_numero;
nome,
rua_numero, escreva(“Digite a cidade e o estado: ”); Fonte: https://cutt.ly/EfFOiyK

rua_numero cidade_estado leia cidade_estado;


escreva nome;
cidade e estado fim escreva rua_numero;
escreva cidade_estado;
1 fim.

Codificação binária Para aprender a programar,


preciso aprender sobre
codificação binária?

Fonte: https://cutt.ly/EfFOiyK Fonte: https://bit.ly/3aLma1D

Linguagens de programação são padrões de codificação


binária, com sintaxe e semânticas específicas.
São capazes de criar instruções para máquinas.

Conceitos básicos de Para cada tarefa, para cada objetivo a ser


linguagens de atingido há uma linguagem adequada e
um conjunto de ferramentas
programação recomendado. Fonte: https://cutt.ly/EfFOiyK

Graças a esses conjuntos de códigos e recursos, é possível


criar programas e sistemas para resolver os mais diversos
problemas do cotidiano.

6
Alto ou baixo nível?
Sintaxe determina as relações
formais que interligam os • Alto nível a sintaxe se aproxima a uma linguagem
constituintes da sentença, humana;
atribuindo-lhe uma estrutura.
• Baixo nível possuem sintaxe e semântica próximas
ao código de máquina.
Fonte: https://cutt.ly/EfFOiyK
Semântica sentido das
palavras e interpretação das
sentenças e dos enunciados.

Paradigmas das linguagens de programação


• Quatro paradigmas tiveram sua evolução reconhecida
nas últimas três décadas:
• Paradigma modelo, padrão.
• Programação Imperativa ou Procedural;
• No contexto da programação de computadores jeito,
• Programação Orientada a Objeto;
maneira, estilo de se programar.
• Programa Funcional;
• Todas as linguagens possuem uma sintaxe forma
como o programa é escrito. • Programação Lógica.

Programação imperativa Programação orientada a objeto (POO)


• Paradigma mais antigo; • Um dos paradigmas mais populares atualmente;
• Pode armazenar o programa e suas variáveis juntamente, assim como a • Conceito de programação baseado no uso de componentes individuais
abstração procedural, as atribuições, as sequências, os laços, os objetos que inter-relacionam entre si e que fazem parte da composição
comandos condicionais e a manipulação de exceções; do software;
• O nome “Imperativa” está ligado ao tempo verbal • Agiliza o processo de criação e proporciona aos programadores uma
imperativo, onde o programador diz ao certa flexibilidade para criação e modificações dos
computador: faça isso, depois isso, depois aquilo... programas.
• COBOL, Fortran, C, Ada e Perl. • vSmalltalk, C++, Java, Delphi, C#.

7
Programa de computador
Programa: Sequência de código organizada de tal forma
que permita resolver um determinado problema.
Pode ser desenvolvido em módulos distintos e/ou em
Componentes e subprogramas.

elementos de SEQUÊNCIA DE INSTRUÇÕES


1. Início do programa;
linguagem de 2. Definição das variáveis e de possíveis atribuições;

programação 3. Instrução de leitura dos dados;


4. Instrução do formato de escrita;
5. Demais instruções e funções;
6. Fim do programa.

Linguagem C
• É estruturada torna o processo de desenvolvimento
Atenção na sequência que os dados
mais simplificado;
percorrem as instruções deverão
ser escritas e armazenadas na • Simples conta com um conjunto de bibliotecas de https://bit.ly/2P0Dz02

memória do computador na mesma funções e sub-rotinas auxiliam no desenvolvimento de


ordem em que se espera que sejam
sistemas;
executadas.
• Grande parte dos sistemas operacionais são escritos em
C usada para escrever uma versão do Unix.

Fonte: https://cutt.ly/EfFOiyK

Estrutura de um programa em C • int main () a primeira e a principal função a ser


#include<bibliotecas>
int main()
executada;
Algoritmo Linguagem C {
• int definição do valor de retorno da função main(), //início das funções
nome_programa; #include<bibliotecas> { início de uma
que no caso é um inteiro; //variáveis
var int main() função.
• () usados para definir os parâmetros a serem //instruções
//declaração de variáveis { } término da return 0;
passados para a função main();
inicio //início das funções função. //término das funções
• return definição do valor de retorno do tipo int }
//ações //declaração de variáveis
normalmente é configurado com o valor 0 para a
fim. //instruções
finalização da função main().
return 0;
//término das funções
}

8
Bibliotecas ou arquivos de cabeçalho em C Algumas bibliotecas
#include<stdio.h> funções de entrada e saída (printf e scanf )
• Coleção de funções, constantes, estruturas de dados, etc.
ficam disponíveis para uso do programador em arquivos #include<stdlib.h> transforma strings em números
específicos acessados via arquivos de cabeçalho. #include<string.h> manipulação de strings
#include<time.h> manipulação de horas e datas
#include<nome_biblioteca> #include<math.h> operações matemáticas

#define_USE_MATH_DEFINES

//para acessar as constantes M_xxx

Variável
Uma variável é uma posição na memória onde um valor pode ser armazenado
para ser utilizado por um programa. É um endereço de memória de trabalho
que guarda, temporariamente, um valor utilizado/obtido pelo programa.
Variáveis e comandos
de entrada e saída de NOME DA VARIÁVEL
• Deve identificar o dado a qual se refere;
<tipo> <nome_da_variavel>;

dados • Maioria das linguagens de programação case sensitive


letras maiúsculas e minúsculas são tratadas com
distinção valor  Valor; Memória de Trabalho
• Não podem ser usados acentos A B
nem caracteres especiais.

Tipos primitivos – Básicos Comandos de entrada


• Digitada pelo usuário a partir de uma interface textual ou gráfica pela
• Numérico inteiro (int) valores inteiros positivos,
qual o usuário alimenta o sistema com dados;
negativos ou zero;
• Leitura de arquivos a partir de arquivos de texto, planilhas, arquivos
• Numérico de ponto flutuante (float ou double) valores
pdf, entre outros;
pertencentes ao conjunto dos números reais;
• Banco de dados programas que fazem o gerenciamento da base de
• Caractere (char e void) armazena letras;
dados ao qual o sistema computacional possui acesso.
• Booleano (bool) armazenam verdadeiro (1) ou falso
(0).

9
leia(variável); • No caso da variável ser do tipo caractere:
gets(nome);
scanf(“código de formatação”,&variável); scanner flow
//o usuário entrará com uma palavra ou com uma frase e o
Obrigatório! Diz para o acessar o endereço de computador o armazenará na variável “nome”.
memória onde a variável foi criada.

scanf(“%d”,&valor);
//o usuário entrará com um valor inteiro e o computador o
armazenará na variável “valor”.

Especificador de formato Comandos de saída (tela do computador)


Cada tipo de variável um especificador de formato para fazer a escreva (variável);
impressão do valor que está guardado naquele espaço da memória.
escreva (“ ”);
Código Função
%c apenas 1 caractere printf (“código de formatação”, variável); printer flow
%d números inteiros
printf (“expressão”);
%e números em notação científica
%f números reais (ponto flutuante) printf(“O valor encontrado foi %d”,valor1);
%s série de caracteres
printf(“∖nResposta: a = %.2f e b = %.2f ∖n”, a,b);
%u número decimal sem sinal

Atividade
• Programa armazenar o nome, a idade, o e-mail, o CPF e a renda
mensal de um aluno;
Armazenando dados • Deverá receber os dados digitados pelo usuário e armazenar nas

pessoais respectivas variáveis e, por fim, imprimir os valores que foram


armazenados.

ENTRADA PROCESSAMENTO SAÍDA

• DADOS • DADOS
PESSOAIS DO • NÃO TEM! PESSOAIS DO
ALUNO ALUNO

10
início 1 Diagrama de blocos cadastro_aluno;
//declarando variaveis
Nome: email var
2
caracter: nome, email, cpf;
nome CPF: nome, idade, real: renda;
email, cpf, renda int: idade;
Idade: cpf inicio
fim //entrando e armazenando variaveis
idade Renda mensal: escreva(“Digite o nome do aluno: ”);
leia(nome);
Email: renda escreva(“Digite a idade do aluno: ”);
1 2 leia(idade);

escreva(“Digite o e-mail do aluno: ”);


//incluindo bibliotecas
leia(email);
#include <stdio.h>
escreva(“Digite o CPF do aluno: ”);
#include <stdlib.h>
leia(cpf);
#include <string.h>
escreva(“Digite a renda mensal do aluno: ”);
//iniciando o programa
leia(renda);
int main()
//imprimindo dados armazenados
{
escreva(“Aluno: ”,nome);
//definindo variáveis
escreva(“Idade: ”,idade);
char nome,email,cpf;
escreva(“e-mail: ”,email);
float renda;
escreva(“CPF: ”,cpf);
int idade;
escreva(“Renda mensal: ”,renda);
fim.

//imprimindo na tela do computador o valor printf(“ \nDigite a renda mensal do aluno: ");
a ser digitado e armazenando-o na scanf("%f",&renda);
respectiva variável //imprimindo os dados armazenados
printf(“ \nDigite o nome do aluno: "); printf(“ \nAluno: %s",nome);
gets(nome); printf(“ \nIdade: %d",idade);
printf(“ \nDigite a idade do aluno: "); printf(" \nE-mail: %s",email);
scanf("%d",&idade); printf(" \nCPF: %s",cpf);
printf(“ \nDigite o email do aluno: "); printf(" \nRenda: R$ %.2f",renda);
gets(email); //encerrando o programa
printf(“ \nDigite o CPF do aluno: "); printf(" \nPressione a tecla enter para sair!");
gets(cpf); return 0;
}

11
Para programar na linguagem
Linguagem C C eu preciso ter algum
software instalado no meu
computador?

Fonte: https://cutt.ly/EfFOiyK Fonte: https://bit.ly/3aLma1D

Dev C++ Iniciando novo projeto

Escrevendo o código fonte

Escreva seu
código-fonte
aqui!!!

12
Salvando o código-fonte

Compilando e executando o código-fonte

Resolução de problemas

Pensar sobre o problema;


Recapitulando
Rascunhar uma primeira solução;

Preocupar com os detalhes.

13
ALGORITMOS Pseudocódigo Linguagem C “ {“ início de uma
Linguagem nome_programa; #include<bibliotecas> função.
Diagrama de blocos Pseudocódigo
natural
var int main() “ }“ término da
Direciona de Conjunto de símbolos Pode ser escrito com função.
//declaração das {
forma simples e gráficos sendo que palavras similares ao
variáveis //início das funções
eficiente as cada um representa
descrições dos uma ação específica
inglês (português).
inicio //declaração de variáveis ;
problemas e a ser executada. //ações //instruções
suas soluções.
fim. return 0;
//término das funções
}

Algumas bibliotecas Variáveis Tipos


#include<stdio.h> funções de entrada e saída (printf e scanf ) int
#include<stdlib.h> transforma strings em números float ou double
<tipo> <nome_da_variavel>;
#include<string.h> manipulação de strings char e void
#include<time.h> manipulação de horas e datas bool
#include<math.h> operações matemáticas

#define_USE_MATH_DEFINES

//para acessar as constantes M_xxx

Comando de entrada de dados Comando de saída de dados


leia (variável); scanf (“código de formatação”,&variável); escreva (variável); printf (“código de formatação”, variável);
scanf (“%d”,&valor); gets(nome); escreva (“ ”); printf (“expressão”);
%c apenas 1 caractere
printf(“O valor encontrado foi %d”,valor1);
%d números inteiros
printf(“ ∖nResposta: a = %.2f e b = %.2f ”, a,b);
%e notação científica
%f números reais
%s série de caracteres
%u número decimal sem sinal

14

Você também pode gostar