Perguntas e tarefas. Escrevendo código de programa usando restrições de uso de declaração de procedimentos

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 quaisquer caracteres digitados 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 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 gravação (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

Usando 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:

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á um 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 entradas, 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 sua execução, 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 ​​​​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. Aqui está um fragmento do programa:

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

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

  9. Aqui está 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.

“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 gama de dispositivos de codificação opcionais.

“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

Saída de dados
Enviando dados da RAM para a tela do monitor:
escrever
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
lista de saída
Expressões - simbólicas, numéricas, lógicas,
incluindo variáveis ​​e constantes
Exemplo:
escreva("s=",s).
Para s=15 a tela mostrará: s=15.
As informações entre aspas são exibidas na tela
sem alterações

Opções de organização de saída
Opção
organização de retirada
Sem separadores
Operador de inferência
escreva(1, 20, 300).
Resultado
120300
Adicione delimitadores write (1, ’,’ , 20,
– vírgulas
’, ’, 300)
1, 20, 300
Adicionar delimitadores de gravação (1, ‘ ‘, 2, ‘ ‘, 3)
– espaços
1 20 300

Formato de saída
O formato de saída permite definir o número de posições
na tela ocupada pelo valor exibido.
escreva(s:x:y)
x - o número total de posições alocadas para o número;
y é o número de posições na parte fracionária do número.
Operador de inferência
Resultado da execução
operador
escreva('s=', s:2:0);
s=15
escreva('s=', s:3:1);
s=15,0
escreva('s=', s:5:1);
e =
escrever
15.0
- saída de uma nova linha!

Primeiro programa
programa n_1;
const pi=3,14;
var r, c, s: real;
começar
r:=5,4;
c:=2*pi*r;
Resultado do programa:
s:=pi*r*r;
writeln("c="",c:6:4);
writeln("s=", s:6:4)
Turbo Pascal
Versão 7.0
fim.
c=33,9120
s=91,5624

Entrada de teclado
Inserindo valores de variáveis ​​​​na RAM:
ler
(<имя переменной1>, …, <имя переменной N>)
lista de entrada
Executando a instrução read:
1) o computador entra no modo de espera de dados:
2) o usuário insere dados do teclado:
vários valores de variáveis
tipos numéricos podem ser inseridos
separados por espaço ou vírgula;
ao inserir variáveis ​​de caracteres
Espaços e vírgulas não podem ser utilizados;
3) o usuário pressiona a tecla Enter.

Entrada de teclado
!
Os tipos de valor de entrada devem corresponder
tipos de variáveis ​​especificados na seção de descrição
variáveis.
var i, j: inteiro;x: real;a: char;
ler(i, j, x, a);
opções para organizar o fluxo de entrada:
1 0 2,5 A 1,0 1
2.5, A 0
2.5
A
Após a instrução readln ser executada, o cursor se move para
nova linha.

Programa melhorado
programa n_1;
const pi=3,14;
var r, c, s: real;
começar
writeln("Calcule a circunferência e a área de um círculo");
escreva("Digite r>>");
leia(r);
c:=2*pi*r;
Resultado do programa:
s:=pi*r*r;
writeln("c="",c:6:4);
Pascal versão 7.0
writeln("s=", s:6:4) Turbo
Calculando a circunferência e a área de um círculo
Digite r >> 8,5
fim.
c=53,3800
s=226,8650

O mais importante
Para inserir valores de variáveis ​​​​na RAM
Os operadores de entrada read e readln são usados.
Para exibir dados da RAM na tela
O monitor usa os operadores de saída write e writeln.
A entrada dos dados iniciais e a saída dos resultados devem
estar organizado de forma clara e conveniente; isso garante
facilidade de uso da interface do usuário.

Perguntas e tarefas
1) Dado um fragmento de programa:
uma:=10; b:=a+1: a:=b–a; escreva (a, b)
Quais números serão exibidos na tela do computador?
2) Descreva as variáveis ​​necessárias para o cálculo
a área de um triângulo ao longo de seus três lados, e
escreva uma declaração fornecendo informações
dados iniciais necessários.
3) Qual é o resultado da execução da instrução?
a) escreva (a)
b) escreva("a")
c) escreva("a=", a)
4) Variáveis ​​inteiras i, j, k precisam ser atribuídas
respectivamente, os valores são 10, 20 e 30.
Escreva a instrução de entrada correspondente à entrada
fluxo:
a) 20 10 30
b) 30 20 10
c) 10,30,20

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

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 figura. 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ção relacionada.


gastroguru 2017