Conceitos Fundamentais de Programação e Linguagens Formais
Classificado em Computação
Escrito em em
português com um tamanho de 11,18 KB
-Cadeia de símbolos: sequência de zero ou mais símbolos de um alfabeto justapostos
-Palavra: cadeia finita de símbolos de um alfabeto ( = palavra vazia)
-Prefixo: qualquer sequência inicial de símbolos de uma palavra
-Sufixo: qualquer sequência final de símbolos de uma palavra
-Subpalavra: qualquer prefixo, sufixo ou sequência de símbolos contíguos de uma palavra
-ALFABETO LINGUAGEM DE PROGRAMAÇÃO:Conjunto de todos os símbolos usados na construção de programas, incluindo:
•Letras •Dígitos •Caracteres especiais (“>”, “/”, “#”, etc.) •Espaço ou “branco”
-Alfabeto binário { a, b } usado com frequência: •Perfeita analogia com a representação interna dos computadores reais (bit = binário) •Manipulação de poucos símbolos simplifica as diversas abordagens desenvolvidas
-Palíndromos: palavras que têm a mesma leitura da esquerda pára a direita e vice-versa
-Dado o alfabeto { a, b }, o conjunto de palíndromos é um exemplo de linguagem infinita
•Palavras: , a, b, aa, bb, aaa, aba, bab, bbb, aaaa...
-Monolítica: baseada em desvios condicionais e incondicionais; não possui mecanismos explícitos de iteração, subdivisão ou recursão
Estruturado usando desvios condicionais e incondicionais
Não fazem uso explícito de mecanismos auxiliares de programação, como iteração, subdivisão ou recursão
Lógica distribuída por todo o bloco (monólito) que constitui o programa
-Iterativa: possui mecanismos de controle de iteração de trechos de programas; não permite desvios incondicionais
Origem na tentativa de solucionar problemas decorrentes na dificuldade de entendimento e manutenção de programas monolíticos
Recursiva: possui mecanismos de estruturação em sub-rotinas recursivas; também não permite desvios incondicionais
-prog interativos mecanismo de composição:Sequencial: composição de dois programas, cujo efeito é a execução sequencial dos mesmos
-Condicional: composição de dois programas, cujo efeito é a escolha de um de acordo com o resultado de um teste
-Enquanto: composição de um programa, cujo efeito é a execução repetida do mesmo enquanto o resultado de um teste for verdadeiro ou falso (mecanismo alternativo até)
-Sequencial: execução da óperação/teste subsequente somente pode ser realizada após o encerramento da execução do anterior
Não determinística ou escolha: a próxima óperação/teste a ser executado é uma escolha entre diversas alternativas de óperações/testes
Concorrente: óperações/testes compostos podem ser executados em qualquer ordem, inclusive simultaneamente
-Intercalação: uma concorrência (verdadeira) é representada como composições de todas as combinações composições sequenciais possíveis
-FLUXOGRAMA: Diagrama geométrico construído a partir de componentes elementares denominados partida, parada, óperação e teste
-INSTRUÇÕES ROTULADAS:Forma de representar fluxogramas em texto Como o próprio nome indica, identificada por um rótulo
Tipos: •Óperação -> seguida de um desvio incondicional pára a instrução subsequente •Teste -> determina um desvio condicional, avaliação de um teste pára determinará instrução subsequente
-Parada: rótulo sem instrução correspondente
-Mecanismo de instruções rotuladas: estrutura básica utilizada pela maioria das linguagens de baixo nível e incorporada nas de alto nível
-Parênteses: utilizados pára possibilitar a interpertação, de forma unívoca, por partes consistentes.
-PROGRAMA RECURSIVO
Encontrado, com diversas variações, em linguagens de programação que admitem a definição de sub-rotinas recursivas
Recursão: forma indutiva de definir programas
Sub-rotinas: permitem a estruturação hierárquica de programas, possibilitando níveis diferenciados de abstração
Mecanismos de abstração na presença de composições concorrentes: desafio atual da CC
-MÁQUINAS
Objetivo: suprir todas as informações necessárias pára que a computação de um programa possa ser descrita
Cabe à máquina:
•Suprir as funções de entrada e de Sáída, ou seja, o armazenamento ou recuperação de informações na estrutura de memória
PROGRAMA Pára UMA MÁQUINA:Afirma-se que P é um programa pára a máquina M se cada identificador de óperação e teste em P tiver uma
função correspondente de óperação e teste em M, respectivamente
COMPUTAÇÃO DE UM PROGRAMA MONOLÍTiço
Histórico das instruções executadas e o correspondente valor de memória
Histórico representado na forma de uma cadeia de pares ordenados onde:
•Cada par ordenado reflete uma configuração ou descrição instantâNeá da máquina pára o programa instrução a ser executada e o valor corrente da memória
•A cadeia de pares é a sequência de configurações possíveis a partir da configuração inicial instrução inicial e valor de memória considerado
Uma computação é dita finita ou infinita de acordo com a cadeia que a define. Sendo finita, o rótulo da última configuração é um rótulo final
-Algorítimo: procedimento pára resolver um problema, definido por uma sequancia finita de passos executaveis
-FLUXOGRAMA: uma descrição precisa e detalhada de um algorítimo composto de uma notação que combina elementos graficos e textuais
-PROGRAMA: é um algorítimo descrito em uma linguagem de programação
-ULA: unidade logica aritimetica
-diretivas: server pára incrluir bibliotecas de comandos definidos pela linguagem ex: studio.H é preciso pára se poder usar
os comandos scanf e printf
-expressoes aritmeticas: compostas por ( + - * / )
-Análise: analisaremos o problema em questao, definindo os dados de entrada qual o processamento e qual informaçoes devem ser apresentadas
como saida
-PROJETO: elaboração de um algorítimo q descreve passo a passo como o computador deve proceder atravez da construçao de um fluxograma
-IMPLEMENTAÇÃO: nessa etapa precisamos codificar um programa correspondente ao algorítimo elaborado na etapa de projeto utilizando uma
linguagem de programaçao
COMPILAÇAO: se usa um compilador q é um programa q interpreta os comandos descritos em uma LP e os converte em uma forma q o cumputador
seja capaz de executar
EXECUÇAO E TEXTE: executamos o programa e verificamos como ele se comporta
TIPOS DE DADOS: numeros(inteiros, real), alfanumericos(caractere, cadeia)
ESTRU SEQUENCIAL: sao executados na ordem, nao depende de condição
expressao condicional: é uma expressao cujo resultado pode ser verdadeiro ou falso, condiçao simples é uma expre condicional cujo valor
é dado por um relacional
ESTRU de seleçao simples: serve pára selecionar e executar apenas um entre dois comandos alternativos, se for verdadeira o primeiro comando
é executado, se for falso apenas o segundo é executado
-uso de blocos de omissao de alternativa: temos que executar mais de um comando no caso da condição ser verda/falso, nao temos
nenhum comando pára executar quando a condição for falsa
-estrutura de seleção simples encaixada: uma estrutura de seleção simples encaixada em outra
-estru de seleção encadeadas: dizemos q duas estru de seleçao simples estao encadeadas se uma delas esta encaixada no lado falso da outra ,sao uteis quando precisamos escolher apenas um entre varios comandos alternativos -estrutura de seleção multipla: é composta de uma série de condiçoes de igualdade que comparam uma mesma expressao a constante que deve ser do tipo inteiro ou caractere em C, a logica de uma estrutura de seleção multipla pode ser implementada por uma estrutura de seleçao encadeada porém de uma maneira menos clara
-switch(expressao){ case constante 1: comandao 1;break; case constante 2: comando 2; break; default comando n; break;}
-pq foi feita a programaçao estruturada ? E quais sao os tipos e os explique ?
R: pára facilitar sua compreensao, seu desenvolvimento e sua manutençao. Sequencia: essa estrutura permite indicar dois ou mais passos que devem ser executados sequencialmente, na ordem que sao especificados. Seleçao: permite indicar dois passos que devem ser executados de forma mutuamente exclusiva, dependendo de uma determinada condiçao. Repetiçao: permite indicar um ou mais passoa que devem ser executados repetidamente, dependendo de uma determinada execuçao.
-quais sao os tipos de dados ? Explique cada:
R: constantes e variaveis. Constantes: representam dados cujos valores permanecem inalterados durante a execuçao do algoritmo. Variaveis:representam dados cujos valores podem ser alterados durante a xecuçao do algoritmo.
-como funciona uma estrutura sequencial ?
R: primeiro vem a entrada que lé os dados digitados pelo usuário e os armazena em posiçoes de memória; depois acontece o processamento que calcula expressoes compstas por constantes e variaveis e armazena seus resultados em uotras variaveis; e logo após acontece a saida de dados que exibe no video os resultados dos calculos efetuados
-pára que serve as bibliotecas MATH.H SQRT( ) e POW( )?
R: math.H é necessaria semore que usamos funçoes matematicas. Sqrt( ) é usada pára calcular raiz quadrada de um valor; pow( ) é usada pára calcular a potencia de um valor elevado a outro
pára que serve a estrutura de seleçao simples ?
R: serve pára selecionar e executar apenas um entre dois comendos alternativos. Exemplo: SE ela for verdadeira, ENTAO apenas o primeiro comando é executado.SENAO, apenas o segundo comndo é executado.
- embora a estrutura de seleçao simples apresente exatamente um comando a ser executado em cada caso (v ou f), ha situaçoes qme que:
temos de executar mais de um comando no caso de a condiçao ser verdadeira e/ou no caso de a condiçao se falsa;
nao temos nenhum comando pára executar quando a condiçao for falsa.
oque é uma estrutura de seleçao simples encaixada ?
uma estrutura de seleçao simples pode ser encaixada em outra, tanto no lado verdadeiro quanto no lado falso, pára formar padroes meis complexos.
quando que ums estrutura é considera de seleçao encadeada ?
R: dizemos que duas estruturas de selaçao simples estao encadeadas se uma delas exta encaixada no lado falso da outra. E sao uteis quando precisamos escolher apenas um entre varios comando alternativos.
oque é um compilador ?
R: é um programa que interpreta os comenado criados em uma linguagem de programaçao.