Pular para o conteúdo

Programação

Ciência da Computação IGCSE · Tópico 8

Ver Slides Treinar
Videoaula para este tópico Abrir a página do vídeo
13:11

Programação

Aqui está um programa curto. Ele lê cinco notas de teste e imprime o total. As cinco notas são oito, nove, sete, seis e dez, então o total deve ser quarenta. Observe…

Narração em inglês · legendas em inglês e 中文 que você pode alternar

8.1

Variables and constants

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Declarar e usar variáveis e constantes
2 Compreender e usar tipos de dados básicos • Incluindo: – inteiro – real – char – string – Booleano
3 Compreender e usar entrada e saída
4 (a) Compreender e usar o conceito de sequência
(b) Compreender e usar o conceito de seleção • Incluindo: – instruções IF – instruções CASE
(c) Compreender e usar o conceito de iteração • Incluindo: – laços controlados por contagem – laços de pré-condição – laços de pós-condição
(d) Compreender e usar os conceitos de somatório e contagem
(e) Compreender e usar o conceito de manipulação de strings • Incluindo: – comprimento – substring – upper – lower • O primeiro caractere da string pode ser posição zero ou um
(f) Compreender e utilizar operadores aritméticos, relacionais e lógicos • Aritméticos, limitados a: – + – – – / – * – ^ (elevado à potência) – MOD – DIV • Relacionais, limitados a: – = – < – <= – > – >= – <> (diferente de) • Lógicos, limitados a: – AND – OR – NOT
5 Compreender e usar instruções aninhadas • Incluindo seleção e iteração aninhadas • Os candidatos não serão exigidos a escrever mais de três níveis de instruções aninhadas
6 (a) Compreender o significado de procedimentos, funções e parâmetros (b) Definir e usar procedimentos e funções, com ou sem parâmetros (c) Compreender e usar variáveis locais e globais • Procedimentos e funções podem ter até três parâmetros
7 Compreender e usar rotinas de biblioteca • Incluindo: – MOD – DIV – ROUND – RANDOM
8 Compreender como criar um programa mantensível • Incluindo uso adequado de: – identificadores significativos – recurso de comentários fornecido pela linguagem de programação – procedimentos e funções – comentários relevantes e apropriados da sintaxe • Use identificadores significativos para: – variáveis – constantes – arrays – procedimentos e funções

Fonte: Programa Cambridge International

Uma variável é um local nomeado que armazena um valor que pode mudar enquanto o programa executa. Uma constante é um local nomeado cujo valor é fixo e não muda.

A variable named age holding the value 16
Uma variável é um armazém nomeado cujo valor pode mudar
Lines of program code on a screen
Variables and constants são armazéns nomeados para valores, definidos no código do programa

Você deve declará-las (informar seu nome e tipo) antes de usá-las:

DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142
Two RAM memory modules
Enquanto um programa executa, suas variáveis são mantidas na memória do computador (RAM)

Use uma constante para um valor que nunca muda (como Pi), para que seja definido em um único lugar e fácil de ler.

Explorar

Variáveis e atribuição

Passe pelas linhas e observe cada variável assumir o seu novo valor.

Vocabulário Treinar
English Português
variable/ˈveərɪəbl/ variável
constant/ˈkɒnstənt/ constante
declare/dɪˈkleə/ declarar
integer/ˈɪntɪdʒə/ inteiro
string/strɪŋ/ string
Assistir aula
8.1

Tipos de dados

Um tipo de dado indica qual tipo de valor uma variável armazena. Você precisa conhecer cinco tipos básicos.

Tipos de dados: inteiro (7), real (3.5), caractere ('A'), cadeia de caracteres (“olá”), booleano (verdadeiro/falso)
Os tipos de dados básicos: integer, real, char, string e boolean
Type Holds Example
inteiro um número inteiro 42, -7
real um número com casa decimal 3.14, -0.5
char um único caractere 'A', '?'
string uma sequência de caracteres "Hello"
Booleano um dos dois valores TRUE ou FALSE
Vocabulário Treinar
English Português
data type/ˈdeɪtə taɪp/ tipo de dado
real/rɪəl/ real
char/tʃɑː/ caractere
Boolean/ˈbuːlɪən/ booleano
8.1

Entrada e saída

Entrada lê um valor do usuário. Saída exibe um valor na tela.

OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
Vocabulário Treinar
English Português
input/ˈɪnpʊt/ entrada
output/ˈaʊtpʊt/ saída
8.1

As três estruturas básicas

Todo programa é construído a partir de três estruturas de controle.

Três pequenos fluxogramas: sequência (caixas em linha), seleção (um teste que se ramifica em dois caminhos) e iteração (um teste com corpo que retorna)
As três estruturas de controle: sequência executa etapas em ordem, seleção escolhe um ramo, iteração repete um corpo

Sequence

Sequência significa que as etapas são executadas uma após a outra, em ordem, de cima para baixo.

INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area

Selection

Seleção escolhe quais etapas executar, baseado em uma condição. Use uma instrução IF, ou uma instrução CASE quando houver muitas opções.

IF Score >= 50
  THEN
    OUTPUT "Pass"
  ELSE
    OUTPUT "Fail"
ENDIF
CASE OF Grade
    'A' : OUTPUT "Excellent"
    'B' : OUTPUT "Good"
    OTHERWISE OUTPUT "Keep trying"
ENDCASE

Iteration

Iteração (um laço) repete etapas. Existem três tipos.

Um laço controlado por contagem repete um número fixo de vezes:

FOR I ← 1 TO 5
    OUTPUT "Hello"
NEXT I

Um laço de pré-condição verifica a condição antes de cada repetição, portanto pode não executar nenhuma vez:

WHILE Answer <> "stop" DO
    INPUT Answer
ENDWHILE

Um laço de pós-condição verifica a condição depois de cada repetição, portanto sempre executa pelo menos uma vez:

REPEAT
    INPUT Password
UNTIL Password = "secret"
Dois fluxogramas de laços: WHILE testa a condição antes do corpo; REPEAT executa o corpo primeiro e testa depois
Um loop pre-condition (WHILE) testa antes do corpo, então pode executar zero vezes; um loop post-condition (REPEAT) testa depois, então executa pelo menos uma vez
Explorar

Como uma escada IF … ELSE IF decide

As condições são testadas de cima para baixo; a PRIMEIRA que for verdadeira executa e as outras são puladas. Deslize a pontuação e observe qual ramificação acende.

Explorar

Seleção

Altere o valor e observe qual ramo é executado — seleção em ação.

Vocabulário Treinar
English Português
sequence/ˈsiːkwəns/ sequência
selection/sɪˈlekʃn/ seleção
iteration/ˌɪtəˈreɪʃn/ iteração
loop/luːp/ laço
count-controlled loop/kaʊnt kənˈtrəʊld luːp/ laço controlado por contagem
pre-condition loop/priː kənˈdɪʃn luːp/ laço de pré-condição
post-condition loop/pəʊst kənˈdɪʃn luːp/ laço de pós-condição
length/leŋθ/ comprimento
8.1

Somatório e contagem

  • soma acumulativa — continuar somando valores a um total acumulado: Total ← Total + Value.
  • contagem — adicionar 1 a um contador a cada vez: Count ← Count + 1.
Count ← Count + 1 incrementa o contador 0, 1, 2, 3; Total ← Total + Value soma o total 0, 4, 11, 16 para os valores 4, 7 e 5
Um contador conta até 1; um total constrói uma soma acumulada

Uma tabela de traçagem seguindo um laço sobre os valores 4, 7 e 5: total vai 0, 4, 11, 16 enquanto count vai 0, 1, 2, 3 *A trace table segue um loop de totalling e counting passo a passo

Total ← 0
FOR I ← 1 TO 10
    INPUT Mark
    Total ← Total + Mark
NEXT I
OUTPUT Total

Worked example. Um programa deve ler 5 notas, depois exibir o total e a média.

Total ← 0
FOR I ← 1 TO 5
    INPUT Mark
    Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average

Duas linhas transportam as notas. Total ← 0 deve ficar antes do loop: coloque-o dentro e o total será reiniciado em cada passagem, então o programa exibirá apenas a última nota. E Average ← Total / 5 deve ficar depois do loop, porque o total não está completo até que todas as notas tenham sido somadas. Inicialize antes, calcule depois — essa ordem é o que a questão realmente testa.

Vocabulário Treinar
English Português
totalling/ˈtəʊtəlɪŋ/ soma acumulada
counting/ˈkaʊntɪŋ/ contagem
remainder/rɪˈmeɪndə/ resto
nested statement/ˈnestɪd ˈsteɪtmənt/ instrução aninhada
8.1

Operadores

Arithmetic operators

Operator Meaning
+ - * / add, subtract, multiply, divide
^ raised to the power of
MOD o resto da divisão
DIV the whole-number part of a division

Por exemplo, 17 MOD 5 é 2, e 17 DIV 5 é 3.

Relational operators

Estes comparam dois valores e dão um resultado Booleano: =, <, <=, >, >=, e <> (not equal to).

Logical operators

Estes unem condições: AND (ambas devem ser verdadeiras), OR (pelo menos uma deve ser verdadeira), NOT (reverte verdadeiro/falso).

Três famílias de operadores: operadores aritméticos como mais e vezes geram um número, operadores relacionais como menor-que comparam e geram verdadeiro ou falso, operadores lógicos E OU NÃO unem condições
As três famílias de operadores: aritméticos, relacionais e lógicos
IF Age >= 13 AND Age <= 19
  THEN
    OUTPUT "Teenager"
ENDIF
Explorar

SUBSTRING: pegar parte de uma string

O primeiro caractere está na posição 1. SUBSTRING(Palavra, Início, Comprimento) pega Caracteres Length começando em Início — arraste as duas alças e leia a chamada que ela constrói.

8.1

Manipulação de strings

Uma string é feita de caracteres. Operações úteis:

A cadeia de caracteres Ada Lovelace em doze caixas numeradas de 1 a 12, com o espaço na posição 4 e os oito caracteres a partir da posição 5 destacados como SUBSTRING(FullName, 5, 8)
As posições começam em 1 e o espaço é um caractere: o sobrenome corresponde aos 8 caracteres a partir da posição 5
  • comprimento — o número de caracteres na string;
  • substring — parte menor extraída da string;
  • maiúsculas — alterar letras para maiúsculas;
  • minúsculas — alterar letras para minúsculas.
name ← "Computer"
OUTPUT LENGTH(name)          // 8
OUTPUT SUBSTRING(name, 1, 4) // "Comp"
OUTPUT UCASE(name)           // "COMPUTER"
OUTPUT LCASE(name)           // "computer"

(O primeiro caractere pode ser contado como posição 0 ou posição 1, dependendo da linguagem.)

Em pseudocódigo de exame, o primeiro caractere está na posição 1, e SUBSTRING(name, start, length) extrai length caracteres começando em start.

Exemplo resolvido. Extraia o sobrenome de um nome completo como "Ada Lovelace".

FullName ← "Ada Lovelace"
Position ← 0
FOR I ← 1 TO LENGTH(FullName)
    IF SUBSTRING(FullName, I, 1) = " "
      THEN
        Position ← I
    ENDIF
NEXT I
OUTPUT SUBSTRING(FullName, Position + 1, LENGTH(FullName) - Position)
  1. O espaço LENGTH(FullName) está na posição 12 (o espaço conta como um caractere).
  2. O laço verifica um caractere por vez; o espaço está na posição 4, então Position é 4.
  3. O sobrenome começa na posição 5 e tem $12 - 4 = 8$ caracteres: SUBSTRING(FullName, 5, 8) é "Lovelace".
Explorar

SUBSTRING: pegar parte de uma string

O primeiro caractere está na posição 1. SUBSTRING(Palavra, Início, Comprimento) pega Caracteres Length começando em Início — arraste as duas alças e leia a chamada que ela constrói.

Vocabulário Treinar
English Português
substring/ˈsʌbstrɪŋ/ subcadena
upper case/ˈʌpə keɪs/ maiúsculas
lower case/ˈləʊə keɪs/ minúsculas
8.1

Declarações aninhadas

Uma instrução aninhada é uma estrutura de controle colocada dentro de outra. Você pode aninhar seleção e iteração.

FOR I ← 1 TO 3
    IF MOD(I, 2) = 0
      THEN
        OUTPUT I, " is even"
      ELSE
        OUTPUT I, " is odd"
    ENDIF
NEXT I

Você não precisará escrever mais de três níveis de aninhamento.

8.1

Procedimentos e funções

Para evitar repetir código, você pode dividir um programa em blocos nomeados.

  • Um procedimento é um bloco de código nomeado que executa uma tarefa. Você o executa com CALL.
  • Uma função é como um procedimento, mas ela retorna um valor para onde foi chamada.

Um parâmetro é uma entrada nomeada em um procedimento ou função; a chamada fornece seu valor. Questões de exame usam até três parâmetros.

PROCEDURE Greet(PersonName : STRING)
    OUTPUT "Hello ", PersonName
ENDPROCEDURE

CALL Greet("Sam")
FUNCTION Square(N : INTEGER) RETURNS INTEGER
    RETURN N * N
ENDFUNCTION

Answer ← Square(5)   // answer is 25

Exemplo resolvido. Escreva uma função que retorne o maior de dois números e use-a.

FUNCTION Larger(A : INTEGER, B : INTEGER) RETURNS INTEGER
    DECLARE Result : INTEGER
    IF A > B
      THEN
        Result ← A
      ELSE
        Result ← B
    ENDIF
    RETURN Result
ENDFUNCTION

Biggest ← Larger(12, 30)
OUTPUT Larger(Biggest, 25)

Larger(12, 30) retorna 30, que é armazenado em Biggest; Larger(30, 25) retorna 30, que é saída. A, B e Result são locais: existem apenas enquanto a função executa. O resultado de uma função deve ser usado, em atribuição ou saída; um procedimento é executado em linha própria com CALL e não devolve nada.

Larger(12, 30) retorna 30 para Biggest; Larger(Biggest, 25) é chamada com A = 30 e B = 25 e retorna 30, que é exibido
Cada chamada de função retorna um valor que deve ser usado: armazenado em Biggest e depois exibido

Variáveis locais e globais

  • Uma variável local é declarada dentro de um procedimento ou função. Ela só pode ser usada lá.
  • Uma variável global é declarada no programa principal. Ela pode ser usada em qualquer lugar.

Variáveis locais são mais seguras, pois não podem ser alteradas por engano a partir de outra parte do programa.

Vocabulário Treinar
English Português
procedure/prəˈsiːdʒə/ procedimento
function/ˈfʌŋkʃn/ função
parameter/pəˈræmɪtə/ parâmetro
local variable/ˈləʊkl ˈveərɪəbl/ variável local
global variable/ˈɡləʊbl ˈveərɪəbl/ variável global
library routine/ˈlaɪbrəri ruːˈtiːn/ rotina de biblioteca
maintainable/meɪnˈteɪnəbl/ mantenível
meaningful identifiers/ˈmiːnɪŋfl aɪˈdentɪfaɪəz/ identificadores significativos
comments/ˈkɒments/ comentários
8.1

Rotinas da biblioteca

Uma rotina de biblioteca é um trecho de código pronto que você pode usar. Você deve conhecer estes:

Routine O que faz
MOD dá o resto de uma divisão
DIV dá a parte inteira de uma divisão
ROUND arredonda um número real para um número de casas decimais
RANDOM dá um número aleatório
Chamada Resultado
MOD(17, 5) 2
DIV(17, 5) 3
ROUND(3.14159, 2) 3.14
ROUND(7.46, 1) 7.5
RANDOM() um número real aleatório de 0 a 1

MOD(Number, 2) = 0 verifica se um número é par; DIV(Seconds, 60) e MOD(Seconds, 60) dividem 135 segundos em 2 minutos e 15 segundos.

8.1

Escrevendo um programa mantensável

Um programa mantenível é fácil de ler e alterar por outras pessoas mais tarde. Para torná-lo assim:

  • use identificadores significativos — nomes claros para variáveis, constantes, arrays, procedimentos e funções (totalScore, não x);
  • adicione comentários para explicar o que cada parte do código faz;
  • use procedures e functions para dividir o trabalho em pequenos blocos.
Vocabulário Treinar
English Português
array/əˈreɪ/ array
index/ˈɪndeks/ índice
one-dimensional (1D) array/wʌn daɪˈmenʃənl əˈreɪ/ array unidimensional (1D)
two-dimensional (2D) array/tuː daɪˈmenʃənl əˈreɪ/ array bidimensional (2D)
8.2

Matrizes

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Declarar e usar arrays unidimensionais (1D) e bidimensionais (2D)
2 Compreender o uso de arrays • Incluindo o uso de variáveis como índices em arrays
3 Escrever valores em e ler valores de um array usando iteração • O primeiro índice pode ser zero ou um • Incluindo iteração aninhada

Fonte: Programa Cambridge International

Um array é uma única variável que armazena muitos valores do mesmo tipo, acessados por um índice (um número de posição).

Arrays unidimensionais

Um array unidimensional (1D) é como uma lista única.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
OUTPUT Scores[1]
Cinca caixas em fileira rotuladas com índice 1 a 5, contendo valores, com o valor no índice 2 destacado como 75
Um array 1D armazena muitos valores em uma única variável; cada um é encontrado pelo seu índice

Você pode usar um loop para preencher ou ler um array:

FOR I ← 1 TO 5
    INPUT Scores[I]
NEXT I

Exemplo resolvido. Encontre a pontuação mais alta em Scores e sua posição. Scores contém 90, 75, 98, 61, 98.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
Scores[3] ← 98
Scores[4] ← 61
Scores[5] ← 98

Highest ← Scores[1]
Place ← 1
FOR I ← 2 TO 5
    IF Scores[I] > Highest
      THEN
        Highest ← Scores[I]
        Place ← I
    ENDIF
NEXT I
OUTPUT "Highest ", Highest, " at position ", Place
I Scores[I] > Highest? Highest Place
início 90 1
2 75 não 90 1
3 98 sim 98 3
4 61 não 98 3
5 98 não 98 3

A saída é Highest 98 at position 3. Iniciar Highest no primeiro elemento, em vez de 0, também funciona para valores negativos; com >= em vez de >, o último 98 seria encontrado (posição 5).

Arrays bidimensionais

Um array bidimensional (2D) é como uma tabela com linhas e colunas. Ele usa dois índices.

DECLARE Grid : ARRAY[1:3, 1:3] OF INTEGER
Grid[1, 1] ← 5
Grid[2, 3] ← 8
Uma grade 3x3 com linhas e colunas numeradas; a célula na linha 2, coluna 3 está destacada e rotulada como grid row 2 column 3
Um array 2D é uma tabela; cada valor é encontrado por dois índices, [linha, coluna]

Você lê um array 2D com um loop dentro de outro loop (iteração aninhada).

Exemplo resolvido. Marks[1:3, 1:2] contém duas notas de teste para cada um de três alunos (linhas). Exiba o total de cada aluno.

Coluna 1 Coluna 2
Linha 1 12 15
Linha 2 9 11
Linha 3 14 18
DECLARE Marks : ARRAY[1:3, 1:2] OF INTEGER
Marks[1, 1] ← 12
Marks[1, 2] ← 15
Marks[2, 1] ← 9
Marks[2, 2] ← 11
Marks[3, 1] ← 14
Marks[3, 2] ← 18

FOR Row ← 1 TO 3
    Total ← 0
    FOR Col ← 1 TO 2
        Total ← Total + Marks[Row, Col]
    NEXT Col
    OUTPUT "Student ", Row, ": ", Total
NEXT Row

O laço externo seleciona um aluno; o laço interno soma as duas notas desse aluno. A saída é 27, 20 e 32. Total ← 0 deve estar dentro do laço externo: se colocado antes dele, os totais continuariam para 27, 47 e 79.

Um programa completo para uma situação-problema

A última questão da Prova 2 pede que você escreva um programa completo para uma situação-problema, usando vetores. São atribuídos pontos para cada parte exigida, portanto planeje as partes antes de escrever.

Exemplo resolvido. Uma estação meteorológica registra a temperatura ao meio-dia em cada um dos 7 dias de uma semana. Escreva um programa que:

  • receba as 7 temperaturas em um vetor, aceitando apenas valores de −20 a 50;
  • apresente a temperatura média da semana;
  • apresente quantos dias tiveram temperatura acima dessa média e qual foi o dia mais quente.

Plano. (1) declarar o vetor e as variáveis; (2) um laço de 7 entradas, cada uma com um laço de validação; (3) um total acumulado e depois a média; (4) um segundo laço para contar os dias acima da média e encontrar a maior temperatura; (5) saídas com mensagens.

DECLARE Temps : ARRAY[1:7] OF REAL
DECLARE Day, AboveCount, HotDay : INTEGER
DECLARE Total, Average : REAL

Total ← 0
FOR Day ← 1 TO 7
    OUTPUT "Enter the temperature for day ", Day
    INPUT Temps[Day]
    WHILE Temps[Day] < -20 OR Temps[Day] > 50 DO
        OUTPUT "Invalid: enter a value from -20 to 50"
        INPUT Temps[Day]
    ENDWHILE
    Total ← Total + Temps[Day]
NEXT Day

Average ← Total / 7
OUTPUT "Average temperature: ", ROUND(Average, 1)

AboveCount ← 0
HotDay ← 1
FOR Day ← 1 TO 7
    IF Temps[Day] > Average
      THEN
        AboveCount ← AboveCount + 1
    ENDIF
    IF Temps[Day] > Temps[HotDay]
      THEN
        HotDay ← Day
    ENDIF
NEXT Day

OUTPUT "Days above average: ", AboveCount
OUTPUT "Hottest day: ", HotDay, " at ", Temps[HotDay]

Por que recebe pontos. Cada parte exigida está presente e é fácil de encontrar: o laço de validação solicita novamente até que o valor esteja no intervalo (um IF verificaria apenas uma vez); o valor é adicionado ao total depois de ser validado; a média é calculada depois do laço, não dentro dele; a contagem começa em 0 e o dia mais quente começa no dia 1, de modo que sempre corresponde a uma leitura real. Os dias acima da média exigem um segundo laço, pois a média só é conhecida depois que todos os valores são inseridos.

Erros comuns. Dividir por 7 dentro do primeiro laço; comparar com a média antes de calculá-la; iniciar a maior temperatura em 0 (incorreto se todas as temperaturas forem negativas); e apresentar saídas sem uma mensagem que explique o que cada número representa.

Explorar

Matrizes

Escolha uma linha e uma coluna para ler uma célula. Os arrays da Cambridge contam a partir de 1, e um elemento 2D é escrito com UM par de parênteses — Grid[2, 3].

Vocabulário Treinar
English Português
file/faɪl/ arquivo
Assistir aula
8.3

Manipulação de arquivos

Programa
Os candidatos devem ser capazes de: Notas e orientações
1 Compreender o propósito de armazenar dados em um arquivo para uso por um programa
2 Abrir, fechar e usar um arquivo para leitura e escrita • Incluindo: – ler e escrever itens únicos de dados – ler e escrever uma linha de texto

Fonte: Programa Cambridge International

Um programa pode armazenar dados em um arquivo para que ele seja mantido após o programa parar. Você deve abrir o arquivo, usá-lo e depois fechá-lo.

OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"

OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"

Você pode ler e escrever itens individuais de dados ou uma linha inteira de texto. Sempre feche um arquivo quando terminar de usá-lo.

Exemplo resolvido. Salve os cinco valores de Scores em um arquivo, um por linha, depois leia o primeiro de volta.

DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
Scores[3] ← 98
Scores[4] ← 61
Scores[5] ← 98

OPENFILE "scores.txt" FOR WRITE
FOR I ← 1 TO 5
    WRITEFILE "scores.txt", Scores[I]
NEXT I
CLOSEFILE "scores.txt"

OPENFILE "scores.txt" FOR READ
READFILE "scores.txt", FirstScore
CLOSEFILE "scores.txt"
OUTPUT FirstScore

Cada WRITEFILE adiciona uma linha, então o arquivo contém cinco linhas; a leitura começa do topo, logo FirstScore é a primeira nota. Abrir um arquivo FOR WRITE o inicia vazio: qualquer conteúdo prévio é perdido.

8.3

Dicas de prova

  • Para a questão longa sobre uma situação-problema, liste primeiro as partes exigidas e depois verifique se cada uma aparece no seu código, com comentários ou mensagens que mostrem onde estão.
  • Uma variable (variável) pode mudar enquanto o programa roda; uma constant (constante) é fixa. Aprenda os cinco tipos de dados: integer, real, char, string, Boolean.
  • Todo programa é construído a partir de três estruturas: sequence (sequência), selection (seleção - IF / CASE) e iteration (iteração - loops).
  • Um loop WHILE testa antes do corpo, então pode rodar zero vezes; um loop REPEAT … UNTIL testa depois, então sempre roda pelo menos uma vez.
  • MOD dá o resto e DIV a parte inteira de uma divisão: 17 MOD 5 é 2, 17 DIV 5 é 3.
  • Uma function retorna um valor; uma procedure não. Uma variável local funciona apenas dentro do seu bloco; uma global funciona em qualquer lugar.

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Provas Anteriores

Mais tópicos em Ciência da Computação IGCSE

Entrar ou criar conta

IGCSE, A-Level & AP