Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO APLICADA A REDES MAURÍCIO DA MOTTA BRAGA Software • Conjunto de instruções que diz ao computador o que fazer. • As instruções são escritas em uma forma organizada e seqüencialmente lógica. Software • Categorias de software • Sistema operacional: controla e coordena o hardware (Ex. Linux). • Tradutores: compiladores, interpretadores e montadores (assemblers). • Aplicativos: personalizados ou pacotes (ex. Word, Excel). Hardware Software Aplicativo INTERFACE Sistema Operacional Tradutores Arquiteturas computacionais Como os programas eram escritos inicialmente? Programação Assembly • Processadores só podem rodar software escritos na sua linguagem nativa (código de máquina). Cada processador possui uma linguagem nativa diferente. • A linguagem assembly fornece uma forma mais fácil de escrever código de máquina. • Em um projeto, precisamos primeiro definir qual processador rodará os nossos programas, e a partir daí, aprender a linguagem nativa desse processador. Exemplo CPU - Z80 • Criado quando Federico Faggin, depois de trabalhar no projeto do 8080, deixou a Intel no final de 1974 para fundar a Zilog com Ralph Ungermann. • Foi projetado para ser binariamente compatível com o Intel 8080, de forma que a maior parte do código 8080 podia ser executado sem alterações nele, principalmente o SO CP/M. • Forma, junto com o 6502 e o 6800, o grupo dos mais importantes processadores de 8 bits de sua época, sendo até hoje muito utilizado. Exemplo CPU - Z80 • Processador de 8 bits com barramento de endereços de 16 bits, endereçando até 64 kb de memória; • Após um reset ou boot, o z80 começa a buscar instruções a partir de 0x0000. Por isso normalmente programas em rom estão na parte baixa da memória, e programas em RAM estão na parte ata. • possui 158 instruções básicas, com 208 bits de memória interna acessível ao programador, que são organizados na forma de registradores. Exemplo CPU - Z80 • Seus recursos de programação incluem um registrador acumulador (A), um registrador de flags (F) e seis outros registradores de uso geral de oito bits (B, C, D, E, H e L), que podem ser emparelhados pelo programador como 3 registradores de 16 bits. • Além dos registradores gerais estão disponíveis os registradores "stack pointer" (SP - ponteiro de pilha), "program counter" (PC - contador de programa) e dois índices (ponteiros de memória); • Há outros registradores auxiliares que não estão disponíveis para o programador. Exemplo assembly Z80 STROUT EQU 9 BDOS EQU 5 start: LD DE,FRASE LD C,STROUT CALL BDOS JP 0 FRASE: DB 'Testando...$' end Compilação desse programa produz: 00 00 00 11 0E 01 0E 09 CD 05 00 C3 00 00 54 65 73 74 ... Exemplo Assembly • Ou seja, programar em ASM… Felizmente há uma maneira mais fácil… O computador como uma máquina multinível Portas lógicas Microprograma / Reg + ULA Conjunto de instruções Chamadas de sistema Programador de aplicações / programas normalmente traduzidos Construindo Software • Linguagem de programação • Idioma no qual as instruções são escritas; • Várias linguagens estão disponíveis no mercado. • Programas em alto nível→ tradutores→ execução. PROGRAM Soma; VAR X: integer; BEGIN X := 2+2; WRITE (‘Soma =‘, X) END. Computador Soma = 4 X Soma Vetores, Matriz, Registros, etc.2 4 Exemplos de linguagens de programação • Java; • C / C++ e variantes como Objective C (IOS); • PHP; • .net; • Python; • Fortran; • Pascal; • Ladder; • SQL Windows etc. Paradigmas de programação • Fornece um meio de se classificar as linguagens de programação baseado em suas funcionalidades. • As linguagens podem ser classificadas em vários paradigmas. Paradigmas de programação • Determina a visão que o programador possui sobre a estruturação e execução do programa. Ex: • Programação imperativa→ os programadores podem definir um programa como uma coleção de comandos ou ordens que dizem exatamente como uma tarefa deve ser realizada; • Programação funcional → os programadores abstraem o programa como uma seqüência de funções executadas de modo empilhado. • Programação lógica→ Paradigma de programação que faz uso da lógica matemática. Exemplo programação em lógica - Prolog • “PROgramming in LOGic”, é uma linguagem baseada em lógica de primeira ordem. • Útil para a resolução de problemas que envolvem construir uma representação simbólica de objetos e definir relações entre esses objetos. • Pelo fato de sua estrutura conceitual ser ligada a lógica matemática, constitui uma excelente ferramenta para o estudo de lógica. Exemplo Prolog • Exemplo Prolog: • homem(ricardo). • mortal(X) :- homem(X). • A partir desse fato e dessa regra podemos inferir que Ricardo é mortal. No prolog faríamos uma consulta para isso: • ?-mortal(ricardo) • Resposta: true. O que é programação? Programar: atividade de comunicar algoritmos aos computadores Algoritmos • Seqüência ordenada e não ambígua de passos que levam a solução de dado problema SoluçãoProblema Algoritmo Exemplos de algoritmos Manual de instruções de um eletrodoméstico Receita de bolo Exemplo de Algoritmo • Sacar dinheiro de um caixa eletrônico 1. Passar o cartão do banco no leitor; 2. Digitar senha da conta-corrente; 3. No menu que vai aparecer, escolher a opção “saque”; 4. Digitar o valor desejado e apertar a tecla “Enter”; 5. Confirmar o saque e apertar a tecla “Enter”; 6. Ficar esperando em frente ao caixa até a saída do dinheiro; 7. Retirar o dinheiro. Programação • Diretrizes para construção de softwares • Identificação do problema; • Identificação das “entradas de dados”; • Identificação das “saídas de dados”; • Identificação de regras do problema e limitações do agente; • Determinar o que fazer para transformar as “entradas” em “saídas”; • Obedecer regras e limitações; • Determinar ações possíveis de serem realizadas. • Construção do algoritmo; • Teste de solução. Programação • Exemplo: Calcular a média final de um aluno. O aluno realizará duas provas: P1, P2. Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P1 e P2. b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 2 (dois) (P1 + P2)/2 c) Quais serão os dados de saída? R: O dado de saída será a média final Algoritmos • Descrição de algoritmos (cont.) • Linguagem algorítmica / pseudocódigo / Português estruturado • “Linguagem simplificada de programação” • Expressões concisas e pré-definidas • Palavras-chaves, indentação, um passo por linha. • Ex: var media, P1, P2: real inicio escreva("Digite as notas") leia(P1) leia(P2) media <-(P1 + P2) / 2 escreva("A media é ",media) fimalgoritmo Sintaxe dos algoritmos Scripts e a administração de sistemas • A programação e os algoritmos também fazem parte do dia a dia de um administrador de sistemas; • Podemos utilizar a criação de arquivos de scripts para tornar mais simples as execuções de tarefas repetitivas no dia a dia. • Muito tempo do administrador pode ser perdido realizando ações desse tipo, como abrir os mesmos programas todos os dias; esvaziar a lixeira e diretórios temp para economizar espaço em disco; etc. Linux • Toda sessão no Linux começa com uma solicitação de um nome de login. • Sempre que um usuário digita seu nome de login e senha corretamente, um Shell é invocado e a partir dele o usuário passa a dar comandos e interagir com o sistema. Linux • O superusuário (root): • administrador do sistema, é responsável também por cadastrar os usuários. • Pode também definir shells específicos para cada usuário • Dica: execute os comandos sempre como usuário comum e não como root, para evitar riscos de danos ao sistema operacional. • Uma maneira fácil de verificar é abrir o terminal e se o símbolo antes do cursor é o $, você está como usuário comum,mas se é o #, você está como root. Para sair do modo root, digite exit. Script • Pode ser pensado como um algoritmo projetado para realizar uma determinada tarefa, utilizando os comandos específicos do bash e os executáveis do sistema operacional • Criado em um arquivo texto, via terminal ou em modo gráfico. Script • Um shell script começa (mas não necessariamente) definindo qual o interpretador de comandos que será utilizado para interpretar e executar o script. • Existem outros além do bash, como o sh, o ksh e o csh. • A primeira linha de um shell script define qual o interpretador de comandos será utilizado. Devemos utilizar o path completo de onde se encontra o shell, no caso, no diretório /bin/. Executando scripts online • Há diferentes sites que permitem que testemos os nossos script. Um deles é esse aqui: https://www.jdoodle.com/test-bash-shell-script-online/ Exemplo de script #!/bin/bash # Comentário: exemplo 1 echo "Seu nome de usuário é:" whoami echo "Info de hora atual e tempo que o computador está ligado:" uptime echo "O script está executando do diretório:" pwd echo echo "tá ligado?" Executando o script Análise do script • echo: exibe na tela o texto entre aspas duplas. • whoami: exibe o usuário logado no sistema; • Uptime: exibe a hora atual, o tempo decorrido desde que o computador foi ligado, o número de usuários logados e uma média do número de processos carregados nos últimos um, cinco e 15 minutos; • pwd: exibe o diretório no qual o arquivo está rodando. Comentários começam com #. Constantes e Variáveis • Variável • Um dos conceitos mais importantes na construção de algoritmos. • Representa um espaço de memória reservado para armazenar determinado tipo de dado; • Deve receber um nome para referenciação e modificação; • Deve possuir um tipo associado; • Quando um algoritmo termina sua execução, todas as variáveis são apagadas da memória; • Só podem armazenar um dado por vez. Identificadores em Java • Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: 1. Foobar 2. BIGInterface 3. $incomeAfterExpenses 4. 3_node5 5. !theCase Ok! Ok! Ok! Errado! Errado! Constantes e Variáveis • Declaração de variáveis • Toda variável utilizada em um algoritmo deve ser declarada. • A sintaxe utilizada em pseudocódigo é: • Exemplo linguagem algorítmica: • real: nota1, nota2, media; • Exemplo Java: • double nota1=0, nota2=0, media=0; <tipo>:<variavel1>, <variavel2>, ...; Strings • Implementam o tipo cadeia de caracteres em uma linguagem de programação como Java; • Em Java, Strings são objetos que disponibilizam um conjunto de funções que podem ser usadas pelo usuário. • Pode-se concatenar uma String com uma outra variável ou expressão com o sinal +. Strings • Exemplo: • String s1 = “Exemplo de uma string”; • int x = 10; • String s2 = “Idade de ricardo = ” + x; • int y = 5; • String s3 = “Respostas: x = ” + x + “ e y = ” + y; • System.out.println(s3); Criando variáveis em Shell script • Pelo fato da linguagem não ser tipada, podemos armazenar qualquer tipo de valor em uma variável, desde strings a números. • Identificadores de variáveis podem começar por letras (maiúscula ou minúscula) ou underscore (_); • A linguagem é case sensitive (diferencia maiúsculas e minúsculas) então nome e Nome são duas variáveis diferentes. Criando variáveis • Declaração: É feita no formato nome_da_variavel=valor. Ex: • Codigo_cliente=95 • _cidade=”Recife” • Obs: não deve haver espaços entre o sinal de igual e o nome e o valor da variável. • Em um ambiente shell, as variáveis são, por padrão, do tipo string. Criando variáveis • Para usar a variável, deve-se adicionar um $ na frente do identificador. • Para armazenar o resultado de um comando em uma variável, use a sintaxe: nome_da_variavel=$(comando) ou nome_da_variavel=`comando` • Para receber valores do teclado use a sintaxe: read nome_da_variavel Exemplo com variáveis # Comentário: segundo exemplo echo "Programa com variáveis" numero_exemplo=2 echo "Esse é o nosso programa número $numero_exemplo" echo "Executando o comando df para visualizar o espaço gasto no disco:" system_info=`df -h` # Também poderia ser system_info=$(df -h) echo "$system_info" Executando o exemplo OBRIGADO(A) MAURÍCIO DA MOTTA BRAGA BRAGA.MAURICIO@GMAIL.C OM PROFESSOR OBRIGADO(A)
Compartilhar