Operador condicional? Escrever código de programa usando procedimentosÉ o resultado da execução de uma instrução.

Lar / Não liga

Operadoré um elemento da linguagem que especifica descrição completa ação a ser executada. Cada operador é uma frase completa de uma linguagem de programação e define algum estágio completamente concluído de processamento de dados. Os operadores podem incluir palavras funcionais, dados, expressões e outros operadores. EM Inglês Este conceito é denotado pela palavra “declaração”, que também significa “proposta”.

Cada operador em qualquer linguagem de programação possui um sintaxe E semântica. Sob sintaxe operador é entendido como um sistema de regras (gramática) que determina seu registro a partir dos elementos do alfabeto desta língua, que, juntamente com vários símbolos, inclui, por exemplo, palavras funcionais. Sob semântica operador entende seu significado, ou seja, aquelas ações que correspondem ao registro de um determinado operador. Por exemplo, registre eu:= eu + 1é um exemplo de notação sintaticamente correta operador de atribuição V Linguagem Pascal, cuja semântica é nesse casoé o seguinte: extraia o valor da célula de memória correspondente à variável i, some-o com um, escreva o resultado na mesma célula de memória.

Na maioria das linguagens de programação processuais, o conjunto de operadores é quase o mesmo e consiste em um operador de atribuição, operadores de seleção, operadores de loop, um operador de chamada de procedimento e operadores de salto. Às vezes, operadores vazios (sem ação) e compostos também são diferenciados. Muitos operadores são uma forma de representar certas construções algorítmicas (veja “ Projetos algorítmicos” ) em uma linguagem de programação. Vejamos os grupos de operadores com mais detalhes usando a sintaxe da linguagem Pascal.

Operador de atribuição

A atribuição é uma ação do computador pela qual uma variável recebe o valor de uma expressão calculada (é colocada na célula de memória correspondente à variável). Para descrever tal ação em linguagens de programação, há operador de atribuição.

Em geral, o operador de atribuição é escrito assim:

<переменная> <знак присваивания> <выражение>

Por exemplo, em Pascal a combinação de símbolos é usada como sinal de atribuição: =. Em vários outros idiomas é um sinal de igual.

O resultado da execução do operador de atribuição é uma mudança no estado dos dados: todas as variáveis, exceto variável, localizados no lado esquerdo do operador de atribuição, não alteram seu significado, mas o especificado variável obtém o valor expressões, aparecendo no lado direito do operador de atribuição. Na maioria dos casos é necessário que o tipo expressões correspondeu ao tipo variável. Se este não for o caso, então o operador é considerado sintaticamente incorreto ou o tipo da expressão é convertido para o tipo da variável (ver “ Tipos de dados” ).

Operadores de seleção

Esses operadores são chamados de forma diferente declarações condicionais. Instruções condicionais são usadas para programar algoritmos que contêm a construção algorítmica ramificada.

Existem vários tipos de linguagens de programação declarações condicionais. A declaração condicional completa corresponde à estrutura algorítmica de ramificação completa:

Em uma linguagem de programação, o operador condicional correspondente tem a forma:

se B então S1 outro S2

Se a expressão B, que é calculado no início da execução da instrução condicional, tem o valor “true”, então a instrução será executada S1, V. de outra forma- operador S2. Operadores S1 E S2 pode ser composto.

A estrutura algorítmica de ramificação incompleta é implementada usando um operador condicional incompleto, que tem a forma:

se B então S

Aqui Bé uma expressão lógica e S- operador arbitrário. Operador S será executado se a expressão B for verdadeira.

Se um operador condicional implementa apenas dois ramos de escolha (“sim” e “não”), então usando operador variante (caso-operador) você pode programar uma estrutura multi-ramificação. O operador variante se parece com:

caso E de

Este operador é executado assim: o valor da expressão E pesquisado entre os valores listados no registro do operador V1, V2, …, Vn, e se tal valor for encontrado, o operador correspondente será executado S1, S2, …, Sn.

EM idiomas diferentes programação, a sintaxe e até mesmo a semântica dos operadores listados podem diferir, mas os recursos fornecidos ao programador por tais construções são aproximadamente os mesmos.

Exemplo 1. No artigo “ Projetos algorítmicos”2 foi dado um exemplo de escrita de um algoritmo para resolver uma equação quadrática generalizada usando construções ramificadas. Aqui está um fragmento de um programa em Pascal que implementa o mesmo algoritmo:

se uma = 0 então

se b = 0 então

se c = 0 então writeln("x - qualquer")

outro writeln("sem raízes")

outro escrevern(-c/b)

senão começar

D:= b*b - 4*a*c;

se D< 0 então writeln("sem raízes")

senão começar

x1:= -b + quadrado(D);

x2:= -b - sqrt(D);

escreverln(x1:0:2,""", x2:0:2)

Instruções de loop

Os operadores de loop implementam estruturas algorítmicas cíclicas; são usados ​​para ações que são repetidas muitas vezes; Em muitas linguagens de programação, existem três tipos de operadores de loop: “com pré-condição”, “com pós-condição”, “com parâmetro”.

Uma estrutura algorítmica necessária e suficiente para programar loops é um loop “com uma pré-condição”, portanto pode ser chamado de tipo principal de loop. O operador de loop com uma pré-condição se parece com:

enquanto B fazer S

Operador S, para o qual um loop é criado para execução repetida é chamado corpo do laço. A execução de um operador de loop é reduzida à execução repetida do corpo do loop até que o valor da expressão lógica B verdadeiro (até que se torne falso). Na verdade, instruções de loop semelhantes implementam a execução repetida de instruções condicionais se B então S, enquanto a condição for verdadeira B.

Exemplo 2. Considere o uso de tal operador de loop para calcular a soma dos dígitos de um número natural N:

enquanto N>0 comece

S:=S+N moda 10;

N:=N divisão 10

Em um loop com pós-condição, o corpo do loop precede a condição B. Ao contrário de um loop com pré-condição, aqui B é a condição para encerrar o loop. O operador de loop com pós-condição em Pascal tem a forma:

repetir S até B

Com esta organização do ciclo, o corpo do ciclo S deve ser executado pelo menos uma vez.

Em quase todas as linguagens procedurais existe operador de loop com parâmetro. Pode ser representado esquematicamente assim:

para< variável > E1 para E2 etapa E3 fazer S

Aqui está o significado variável(parâmetro de ciclo) muda do valor da expressão E1 para E2 nas etapas de E3. Para cada valor de um parâmetro de loop, o operador S é executado. Na linguagem Pascal, o conceito de etapa está ausente na descrição deste operador, e a própria etapa para um parâmetro de loop inteiro pode ser igual a 1 ou. –1. O operador “loop com parâmetro” é usado para programar loops com um determinado número de repetições. Não é adequado para programar loops iterativos (cujo número de repetições é desconhecido antecipadamente).

Operador de chamada de procedimento

No artigo “ Sub-rotinas”descreve detalhadamente este tipo de sub-rotina, como procedimentos. As rotinas de linguagem de programação padrão incluídas em uma das bibliotecas de rotinas, bem como as rotinas do usuário descritas dentro deste bloco, são chamadas usando o operador chamada de procedimento:

<имя процедуры>(E1,E2,…,En)

Aqui E1,E2,…,En são variáveis ​​ou expressões que representam parâmetros reais acesso ao procedimento. Mais comumente usado procedimentos padrão são procedimentos de entrada e saída de dados (leitura e gravação em Pascal).

Chamar um procedimento equivale semanticamente a executar o bloco descrito como corpo do procedimento, após passar para ele os valores iniciais de algumas variáveis ​​(parâmetros de valor) ou substituir os nomes de algumas variáveis ​​(parâmetros de variáveis) pelos nomes dos variáveis ​​reais especificadas ao chamar o procedimento.

Exemplo 3. Vamos descrever o procedimento abc:

procedimento abc(a,b:inteiro; var c: inteiro);

Chamar este procedimento abc(2,3,x) é equivalente a um bloco de ação:

Operadores de salto

O operador mais famoso neste grupo de operadores é o operador de salto incondicional Vá para. Se você adicionar a todas ou algumas das instruções de programa existentes etiquetas, então no programa será possível usar um operador de transição no formato:

Vá para<метка>

O rótulo neste caso corresponde ao início da instrução a partir da qual a execução do programa deve continuar. Este operador permite escrever algoritmos em uma linguagem de programação que possui uma estrutura arbitrariamente complexa. Mas muitas vezes o uso da transição incondicional é injustificado, porque leva a algo confuso, ruim programa legível. Quase o único uso significativo do operador Vá paraé uma saída de vários loops aninhados ao mesmo tempo, por exemplo, ao processar matrizes bidimensionais.

Exemplo 4. Suponha que precisemos determinar se uma matriz bidimensional a contém um elemento igual a 0:

para eu:= 1 para N fazer

para j:= 1 para N fazer

se a = 0 então comece

1: se b então escreva("é") outro escreva("não");

Um programa desenvolvido de acordo com as regras da programação estruturada não deve conter operadores de salto incondicionais. O programa acima sem usar o operador Vá para pode ser reescrito da seguinte forma:

enquanto não b e(eu< N) comece

enquanto não b e(j< N) comece

se uma = 0 então b:= verdadeiro;

se b então escreva("é") outro escreva("não");

Neste caso, o programa estruturado é menos visual que o programa com Vá para.

Outros operadores de salto podem ser definidos em linguagens de programação. Por exemplo, em Pascal: quebrar(interrupção antecipada do loop, transição para uma instrução que deve ser executada após o final do loop), continuar(conclusão antecipada da iteração do loop atual e transição para a próxima), saída(interrupção antecipada da sub-rotina, saída dela), parar(interrupção antecipada do programa, transição para o seu final). Existem operadores semelhantes nas linguagens C, C++ e Java.

Operador composto

Uma instrução composta é um grupo de instruções entre colchetes de operadores (em Pascal - começarfim; em C, C++ - (…)).

O operador composto foi introduzido nas linguagens de programação para facilitar a descrição das construções da linguagem. Por exemplo, em Pascal, a parte executável de cada bloco (programa, procedimento, função) é uma instrução composta. Exatamente da mesma maneira, o corpo de qualquer operador de loop consiste em apenas um operador, talvez um operador composto. Uma alternativa para um operador composto pode ser uma palavra de função indicando o final de um operador específico, por exemplo, TERMINAR SE em linguagem básica.

O tópico “Operadores de Linguagem de Programação” geralmente é estudado apenas no contexto de uma linguagem de programação específica. Ao considerá-lo, é importante mostrar a conexão entre construções algorítmicas básicas e operadores: as construções algorítmicas são escritas em uma linguagem de programação usando os operadores correspondentes. A exceção, em certo sentido, é o desenho sequencial que determina a ordem linear das ações. Ações em estrita programa linear são implementados apenas por operadores de atribuição e operadores de chamada de procedimento.

Na fase inicial de aprendizagem da programação, os alunos enfrentam muitos problemas. A primeira barreira psicológica que eles precisam superar é aprender o operador de atribuição. Uma das principais tarefas que você precisa resolver junto com seus alunos é trocar os valores de duas variáveis. Você pode pedir aos alunos que resolvam mentalmente o problema de como trocar o conteúdo de duas gavetas, por exemplo, uma escrivaninha. Normalmente, nesta fase da discussão, os alunos percebem que é necessária uma terceira caixa (variável) para resolver o problema. No entanto, ao escrever este algoritmo, eles muitas vezes confundem em qual parte do operador de atribuição (esquerda ou direita) uma determinada variável deve aparecer.

Erros na escrita aritmética e expressões lógicas surgem devido ao desconhecimento da precedência das operações utilizadas na expressão. Ao mesmo tempo, operações significam não apenas operações aritméticas, mas também operações de comparação e conectivos lógicos, e na linguagem C também a operação de atribuição, o que é muito incomum para crianças em idade escolar. A situação é complicada pelo fato de que em diferentes linguagens de programação as mesmas operações têm prioridades relativas diferentes. Você também deve prestar atenção à correspondência entre os tipos da variável e a expressão nos lados esquerdo e direito do operador de atribuição (ver “ Tipos de dados”).

Ao dominar os operadores de seleção, é útil que os alunos programem um algoritmo contendo uma estrutura multi-ramificação, tanto usando uma combinação de declarações condicionais quanto usando um operador de seleção.

Exemplo. Para uma variável inteira N Insira a idade da pessoa em anos. Digite a frase “ Eu tenho K anos”, substituindo a palavra anos sobre ano ou ano dependendo do número K. Aqui estão duas soluções para este problema:

se(k moda 100) em

então writeln("Tenho ",k," anos")

caso k moda 10 de

0,5..9:writeln("Tenho ",k," anos");

1:writeln("Tenho ",k," anos");

2..4:writeln("Tenho ",k," anos");

var k, n: inteiro;

leia(k); n:= k mod 10;

se(k moda 100) em

então writeln("Tenho ",k," anos") outro

se n=1 então writeln("Tenho ",k," anos")

se(n>=) e(n<= 4)

então writeln("Tenho ",k," anos")

outro writeln("Tenho ",k," anos")

Ao considerar operadores de loop, é útil sugerir programar a mesma tarefa de três maneiras diferentes usando três operadores de loop e vice-versa, com base nas condições do problema, aprender a determinar qual operador de loop é mais adequado em um caso particular.

O procedimento de chamada do operador é simples à primeira vista. Aqui é importante explicar as regras de passagem de parâmetros para procedimentos e funções, a diferença entre parâmetros variáveis ​​e parâmetros de valor (neste último caso, podemos passar não apenas o nome da variável, mas também uma constante ou mesmo uma expressão do correspondente tipo). Os parâmetros formais e reais devem corresponder por tipo, mas não por nome, o que está longe de ser óbvio para os alunos.

Estudar a instrução condicional e especialmente a composta é uma boa oportunidade para conversar com os alunos sobre o estilo de redação do programa. Existem diversas maneiras comuns de escrever programas estruturados em Pascal, mas todas incluem indentação para acomodar estruturas aninhadas. Importante para gravação de programas e comentários.

“Impressora para impressão de cartões plásticos” - Capacidade de colocar o dobro de informações em um cartão plástico. Preço. Impressora para impressão de cartões plásticos. ZEBRA P110i/P120i. Revisão da gama de modelos. Impressoras coloridas econômicas para impressão de cartões plásticos. Alto desempenho Ampla escolha de dispositivos de codificação adicionais.

“Periféricos de PC” - Dispositivos periféricos. Impressoras. Registro. Câmeras digitais. Hierarquia de ferramentas de conexão. Adaptadores de vídeo. Classificação de PU. Barramento serial universal. CD-R. Opções de seleção. Flash embutido. Pioneiros. Natureza. Modem. Terminal de vídeo. Scanners. Periféricos de PC. Classificação de formato de mouse.

“Meios de entrada e saída de informações” - Scanner. Plotador. CRT. Impressoras. Teclado. Câmeras digitais e câmeras. Funções. Dispositivo de entrada universal. Dispositivos de entrada e saída de informações. Mesa digitalizadora. Rato.

“Dispositivos de saída de informação” - Dispositivo de computador. Quanto maior for a resolução do monitor, maior será a qualidade da imagem. Desvantagens das impressoras jato de tinta: Alto consumo de tinta; Alto custo de recarga. Os monitores de cristal líquido (LCD) de tela plana são compactos e livres de emissões. Dispositivos de saída de informações. O monitor é um dispositivo universal de saída de informações.

"Impressoras" - Local. Termobloco, fogão, fusor - uma unidade na qual o toner é transformado em papel. Laser. Matriz (em forma de agulha). Com o tempo, perdem suas propriedades e devem ser substituídos regularmente por um especialista. Jato. Rede. Alterado pelo usuário. Características da impressora. Revelador, transportador, revelador - as menores partículas de metal que transferem o toner para o rolo fotográfico.

"Subsistema de E/S" - Ponto de interrupção. Tabelas. Colocação contínua. Atributo. Permissões de arquivo. Lista vinculada de índices. Dados. Organização física. Acesso direto à memória. Arquivo sequencial indexado. Montagem. E/S orientada por interrupção. Permissões de acesso ao diretório. Organização de trabalho paralelo.

São ao todo 27 apresentações no tema

O código do programa é mostrado na Fig. 4.3-9.

Opção Strict On Opção Explícita On Imports System.Math Public Class Form1 "Função para inserir as coordenadas de um ponto em uma TextBox Function vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "Procedimento para gerando o resultado em um TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Função para calcular o comprimento de um segmento a partir das coordenadas de dois pontos Public Function Segment Length(ByVal x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "Procedimento para calculando o perímetro e a área de um triângulo Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Comprimento do segmento(x1 , y1, x2, y2)"Chamando a função para calcular o comprimento do negativo. B = Comprimento do segmento (x2, y2, x3, y3) C = Comprimento do segmento (x3, y3, x1, y1) P = (A + B + C): Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Procedimento para processamento do evento click no botão Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x1 como único, x2 como único, x3 como único Dim y1 como único, y2 como único, y3 como único Dim por como único, Plo como único x1 = vvod (TextBox1): x2 = vvod (TextBox2): x3 = vvod (TextBox3) ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Manipula Button2.Click End End Sub End Class

Executando o aplicativo e obtendo resultados

O resultado é mostrado na Fig. 4.3-10.

Prova da exatidão do resultado

UMA=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S= = 2


Perguntas de segurança sobre o tema

“A estrutura dos programas, módulos e procedimentos VB.

Ferramentas de programação para algoritmos de estrutura linear"

1. O que é um modelo matemático?

2. Quais são as principais etapas envolvidas na resolução de problemas em um computador?

3. Quais etapas da resolução de problemas computacionais são realizadas sem a participação de um computador?

4. O que é chamado de modelo matemático de um objeto ou fenômeno?

5. Quais são as etapas sequenciais no processo de desenvolvimento do programa?

6. O que é um algoritmo?

7. Quais propriedades básicas um algoritmo deve ter?

8. Que maneiras existem para descrever algoritmos?

9. Quais símbolos gráficos são geralmente representados em diagramas de algoritmos?

10. Como funciona o intérprete?

11. Como funciona o compilador?

12. Qual algoritmo é chamado de linear?

13. Qual algoritmo é chamado de cíclico?

14. Qual algoritmo é chamado de ramificação?

15. Qual é a diferença entre passar os resultados de funções e procedimentos?

16. A obtenção de um resultado plausível prova que o programa está correto?

17. Que erros podem passar despercebidos se você não verificar (visualizar, rolar) o programa?

18. Qual a diferença entre testar um programa e depurá-lo?

19. É possível provar a exatidão de um programa por meio de testes?

20. Em que fase do programa são calculados os resultados dos testes de referência?

21. Liste as principais etapas do processo de teste.

22. Qual é a diferença entre erros de sintaxe e erros semânticos?

23. O que indica a falta de mensagens de erro de sintaxe na máquina?

24. Que tipos de erros o tradutor não consegue detectar?

25. Qual é o programa?

26. Em que fase ocorre a busca e eliminação de erros no programa?

27. O que é um sistema de programação?

28. Qual é o procedimento?

29. Quais são os benefícios de um programa que possui procedimentos?

30. Quais ferramentas de programação processual estão disponíveis em VB?

31. Como são trocados os dados entre os procedimentos individuais do programa?

32. Quais são os parâmetros reais e formais?

33. Como passar como parâmetro: uma constante, uma variável, uma expressão?

34. Como as variáveis ​​globais são usadas?

35. Como as variáveis ​​locais são usadas?

36. O que são parâmetros formais?

37. Quais são os parâmetros reais?

38. O que acontece quando um procedimento é chamado?

39. Como os parâmetros podem ser passados ​​para um procedimento?

40. Quais parâmetros são passados ​​por valor?

41. Quais parâmetros são passados ​​para o endereço?

42. O que são ferramentas de programação processual?

43. Qual é o resultado da execução de uma função?

44. Como as variáveis ​​individuais devem ser declaradas para que sejam locais dentro de uma função?

45. Qual instrução é usada para sair antecipadamente de uma função?

46. O que é controlado ao chamar funções e procedimentos?

47. Como os parâmetros formais devem ser declarados para passar um parâmetro variável por valor?

48. Como os parâmetros formais devem ser declarados para passar um parâmetro variável para um endereço?

49. Como um procedimento de função é chamado a partir do programa chamador?

50. Qual poderia ser o resultado do procedimento?

51. Qual instrução é usada para sair antecipadamente de um procedimento?

52. Onde podem ser localizadas as descrições de funções e procedimentos?

53. Onde uma variável declarada usando o operador Public estará disponível?

54. Onde pode estar localizado o operador Privado?

55. O que é um comentário e as regras para escrevê-lo?

56. Quais são os valores das variáveis ​​no início do programa?

57. Por que os procedimentos e funções são descritos (definidos)?

58. Como são chamados os procedimentos?

59. Como as funções são chamadas?


Informações relacionadas.


O primeiro operando – “expressão1” – pode ser qualquer expressão cujo resultado seja um valor do tipo bool . Se o resultado for verdadeiro , então o operador especificado pelo segundo operando, ou seja, "expressão2", é executado.

Se o primeiro operando for igual a falso , então o terceiro operando é executado - “expressão3”. O segundo e terceiro operandos, ou seja, "expressão2" e "expressão3", devem retornar valores do mesmo tipo e não devem ser do tipo void . O resultado da execução de uma instrução condicional é o resultado de "expressão2" ou o resultado de "expressão3", dependendo do resultado de "expressão1".

Restrições de uso da operadora

O operador baseado no valor de "expressão1" deve retornar um dos dois valores - "expressão2" ou "expressão3". Existem várias restrições a essas expressões:

  1. Você não pode misturar um tipo definido pelo usuário com um tipo ou enumeração simples. É aceitável usar NULL como ponteiro.
  2. Se os tipos de valor forem simples, então o tipo do operador será o tipo máximo (veja Coerção de Tipo).
  3. Se um dos valores for do tipo enumeração e o segundo for do tipo numérico, a enumeração será substituída por int e a segunda regra será aplicada.
  4. Se ambos os valores forem valores enum, seus tipos deverão ser iguais e o tipo do operador será uma enumeração.

Limitações para tipos personalizados (classes ou estruturas):

  1. os tipos devem ser iguais ou um deve herdar do outro.
  2. se os tipos não forem iguais (herança), então o filho será convertido implicitamente para o pai, ou seja, o tipo do operador será o tipo do pai.
  3. Você não pode misturar objeto e ponteiro – ambas as expressões são objetos ou ponteiros. É aceitável usar NULL como ponteiro.

Observação

Tenha cuidado ao usar um operador condicional como argumento para uma função sobrecarregada, pois o tipo de resultado do operador condicional é determinado no momento em que o programa é compilado. E este tipo é definido como o tipo maior dos tipos "expressão2" e "expressão3".

Exemplo:

void func(double d) ( Print("argumento duplo: ",d); )
void func(string s) ( Print("string argumento: ",s); )

bool Expressão1 = verdadeiro;
duplo Expressão2=M_PI;
string Expressão3= "3.1415926";

vazio OnStart()
{
func(Expressão2);
func(Expressão3);

func(Expressão1?Expressão2:Expressão3);
func(!Expressão1?Expressão2:Expressão3);// recebe um aviso do compilador sobre a conversão explícita para o tipo string
}

// Resultado:
// argumento duplo: 3.141592653589793

// argumento de string: 3.141592653589793
// argumento de string: 3.1415926

No parágrafo anterior, conhecemos a estrutura de um programa em Pascal, aprendemos como descrever dados e examinamos o operador de atribuição. Isso é suficiente para escrever um programa de conversão de dados. Mas o resultado destas transformações não será visível para nós.

Para enviar dados da RAM para a tela do monitor, use o operador de saída de gravação:

Aqui, entre parênteses, é colocada uma lista de saída - uma lista de expressões cujos valores são impressos. Podem ser expressões numéricas, simbólicas e lógicas, incluindo variáveis ​​e constantes.

Um conjunto arbitrário de caracteres entre apóstrofos é considerado uma constante de string. Uma constante de string pode conter qualquer caractere digitado no teclado.

Exemplo. A instrução write ("s=" , s) é executada assim:

  1. Os símbolos entre apóstrofos são exibidos na tela: s=
  2. O valor da variável armazenada em uma célula RAM chamada s é exibido na tela.

Se o valor da variável s for 15 e for do tipo inteiro, então a tela exibirá: s=15.

Se o valor da variável s for igual a 15, mas for do tipo real, então aparecerá na tela: s=l.5E+01.

Quando a instrução de saída é executada, todos os elementos da lista de saída são impressos imediatamente um após o outro. Assim, como resultado do operador de escrita (1, 20, 300), será exibida na tela a sequência de números 120300, que será percebida por nós como o número 120300, e não como três constantes numéricas separadas. Você pode tornar os dados de saída mais acessíveis à percepção de diferentes maneiras:

Formato de saídaé um número inteiro indicado após os dois pontos que determina quantas posições na tela o valor exibido deve ocupar. Se houver menos dígitos em um número do que as posições reservadas para ele na tela, as posições livres serão complementadas com espaços à esquerda do número. Se o número especificado no formato de saída após os dois pontos for menor que o necessário, ele será automaticamente aumentado para o mínimo necessário.

Para gerar um número real no formato de ponto fixo, dois parâmetros são especificados na lista de saída para cada expressão:

  1. o número total de posições alocadas para o número;
  2. o número de posições na parte fracionária do número.

Quando uma nova instrução write é executada, a saída continua na mesma linha. Para pular para uma nova linha, use o operador writeln. Não há outras diferenças entre as instruções write e writeln.

4.2.2. Primeiro programa em linguagem Pascal

Utilizando os operadores discutidos acima, criaremos um programa que calcula a circunferência e a área de um círculo com raio de 5,4 cm.

Os dados iniciais neste problema são o raio: r - 5,4 cm. O resultado do programa deve ser os valores C - a circunferência e S - a área do círculo. C, S e r são quantidades do tipo real.

Os dados e resultados iniciais são relacionados por relações conhecidas do curso de matemática: C = 2πr, S = πr +. Um programa que implementa cálculos usando estas fórmulas será semelhante a:

Este programa está correto e resolve o problema. Ao executá-lo, você obterá o seguinte resultado:

E ainda assim, o programa que compilamos tem uma desvantagem significativa: ele encontra a circunferência e a área de um círculo para um único valor de raio (5,4 cm).

Para calcular a circunferência e a área de um círculo para um valor de raio diferente, será necessário fazer alterações diretamente no texto do programa, ou seja, alterar o operador de atribuição. Fazer alterações em um programa existente nem sempre é conveniente, para dizer o mínimo (por exemplo, quando o programa é grande e há muitos operadores de atribuição). A seguir você conhecerá o operador que permite inserir os dados iniciais durante a execução do programa, sem alterar o texto do programa.

4.2.3. Entrada de teclado

Para inserir valores de variáveis ​​​​na RAM, use o operador de entrada de leitura:

Quando a instrução de leitura é executada, o computador entra no modo de espera de dados: o usuário deve inserir os dados no teclado e pressionar a tecla Enter. Vários valores para variáveis ​​de tipo numérico podem ser inseridos separados por espaços ou vírgulas. Ao inserir variáveis ​​de caracteres, espaços e vírgulas são tratados como caracteres e, portanto, não podem ser inseridos.

O primeiro valor da variável inserido pelo usuário é colocado no local da memória cujo nome está localizado primeiro na lista de entrada, etc. Portanto, os tipos de valores de entrada (fluxo de entrada) devem corresponder aos tipos de variáveis ​​​​especificados na variável seção de descrição.

Exemplo. Deixar

var i, j: inteiro; x: real; a:char;

Vamos atribuir as variáveis ​​i, j, x, e os valores 1, 0, 2,5 e “A”. Para fazer isso, usaremos o operador read (i, j, x, a) e organizaremos o fluxo de entrada de uma das seguintes maneiras:

Aqui não apenas usamos vários delimitadores (espaço, vírgula), mas também representamos o fluxo de entrada como uma, duas e quatro linhas.

Você também pode usar o operador readln para inserir dados do teclado, que difere do operador read apenas porque, após ser executado, o cursor se move para uma nova linha.

Vamos melhorar o programa n_1 organizando a entrada de dados nele usando o operador read. E para que o usuário saiba a que se destina o programa e entenda exatamente qual ação o computador espera dele, exibiremos as mensagens de texto correspondentes usando o operador writeln:

O resultado do programa melhorado:

Agora nosso programa pode calcular a circunferência e a área de um círculo para qualquer valor de r. Em outras palavras, não resolve um único problema, mas toda uma classe de problemas. Além disso, o programa organiza de forma clara e conveniente a entrada dos dados iniciais e a saída dos resultados obtidos. Isso garante uma interface de usuário amigável.

O mais importante

Para inserir valores de variáveis ​​​​na RAM, são usados ​​​​os operadores de entrada read e readln.

Para enviar dados da RAM para a tela do monitor, são usados ​​os operadores de saída write e writeln.

A entrada de dados iniciais e a saída de resultados devem ser organizadas de forma clara e conveniente; isso garante uma interface de usuário amigável.

Perguntas e tarefas

  1. Escreva uma instrução que permita inserir o valor da variável summa enquanto o programa está em execução.
  2. As variáveis ​​​​inteiras i, y, k precisam receber os valores 10, 20 e 30, respectivamente. Anote a instrução de entrada correspondente ao fluxo de entrada:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Descreva as variáveis ​​necessárias para calcular a área de um triângulo com base em seus três lados e escreva uma declaração que forneça os dados de entrada necessários.
  4. Qual é o resultado da execução da instrução?
      a) escreva (a)
      b) escreva (1 a ")
      c) escreva (1 uma=1, uma)
  5. Qual é o tipo da variável f se, após executar a instrução write (f), o seguinte número for exibido na tela?
      a) 125
      b) 1,25E+2
  6. Como posso exibir um número real em formato de ponto fixo?
  7. Anote os operadores para inserir dois números e exibi-los na ordem inversa.
  8. Dado um fragmento do programa:

    leia(uma); leia(b); c:=a+b; escreva(a,b); escreva (c)

    Simplifique reduzindo o número de instruções de entrada e saída.

  9. Dado um fragmento do programa:

    uma:=10; b:=a+l: a:=b-a; escreva (a,b)

    Quais números serão exibidos na tela do computador?

  10. Escreva um programa que calcule a área e o perímetro de um retângulo com base em seus dois lados.

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações