This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pt:programming:c:crashcourse [2014/10/23 15:42] – aalmeida | pt:programming:c:crashcourse [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 74: | Line 74: | ||
| ==== Variáveis ==== | ==== Variáveis ==== | ||
| - | Um programa pode utilizar um tipo de espações de memória pré-definidos, | + | Um programa pode utilizar um tipo de espações de memória pré-definidos, |
| <code c> | <code c> | ||
| Line 93: | Line 93: | ||
| ==== Constantes ==== | ==== Constantes ==== | ||
| - | As constantes são declaradas da mesma maneira que as variáveis, apenas | + | As constantes são declaradas da mesma maneira que as variáveis, apenas |
| Um exemplo de utilização de constantes: | Um exemplo de utilização de constantes: | ||
| Line 126: | Line 126: | ||
| ==== Vetores ==== | ==== Vetores ==== | ||
| - | Data types can be arranged into arrays. Array can have more than one dimensions | + | Os tipos básicos de dados podem ser organizados em vetores. Os vetores podem ter várias dimensões |
| <code c> | <code c> | ||
| Line 142: | Line 142: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| - | ===== Operations | + | ===== Operadores |
| - | Variables, constants and value returning functions can be used for composing operations. The result of and operation can be assigned to a variable, it can be used as a function parameter and in different control structures. | + | As variáveis, constantes e valores retornados de funções podem ser utilizados na composição de operações. O resultado de uma operação pode ser atribuído |
| - | ==== Arithmetic operators | + | ==== Operadores aritméticos |
| - | C-language supported artithmetic operations are addition | + | A linguagem |
| <code c> | <code c> | ||
| Line 168: | Line 168: | ||
| </ | </ | ||
| - | ==== Logical operators | + | ==== Operadores lógicos |
| - | Logical operators are negation | + | Os operadores lógicos na linguagem C são compostos pela negação |
| <code c> | <code c> | ||
| Line 192: | Line 192: | ||
| </ | </ | ||
| - | **NB!** // | + | **NOTA!** O tipo de dados // |
| - | ==== Relational and equality operators | + | ==== Operadores relacionais e de igualdade |
| - | Logical values are a result of comparison of variable values. Equality operators are equal to (==), not equal to (!=), greater than (> | + | Os valores lógicos são geralmente resultado de uma comparação entre variáveis. Os operadores de igualdade são: (==) //igual a//, (!=) // |
| <code c> | <code c> | ||
| Line 210: | Line 210: | ||
| b = (4 != 4); | b = (4 != 4); | ||
| - | // Arithmetic, equality and logic operations | + | // Arithmetic, equality and logic operations |
| // b is false because the first operator of logic multiplication is false | // b is false because the first operator of logic multiplication is false | ||
| b = (x + 4 > 15) && (y < 4); | b = (x + 4 > 15) && (y < 4); | ||
| </ | </ | ||
| - | ==== Bit operations | + | ==== Operações de bit ==== |
| - | Bit operations are for data manipulation in binary numeral system. These can be applied only to integer type data. Bit operations are quite similar to logic operations but differ from them because operation is carried out with every single | + | As operações de //bit// são utilizadas para manipulação de dados em formato binário. Estas apenas podem ser aplicadas a tipos de dados inteiros. As operações de //bit// são bastante semelhantes às operações lógicas, com a única diferença que porque estas são aplicadas diretamente a cada um dos bits que compõem o valor, e não apenas ao conjunto que compõem o número. As operações de //bit// que existem na Linguagem |
| <code c> | <code c> | ||
| Line 233: | Line 233: | ||
| </ | </ | ||
| - | Bit operations are essential when using the registers of microcontroller. These are described in AVR register chapter. | + | As operações de //bit// são essenciais na manipulação de registos de um microcontrolador. Estes registos serão descritos adiante no capítulo de registos do AVR. |
| - | ~~PB~~ | + | < |
| - | ===== Functions | + | ===== Funções |
| - | Functions are part of a program that can be called by its name. Function can include parameters as input and can return one output. If the function is not returning | + | As funções definem partes de um programa que pode ser denominadas e invocadas pelo nome. As funções podem incluir parâmetros de entrada e permitem retornar um valor de saída. Se a função não retorna nenhum valor, esta função é definida com o tipo // |
| + | Segue-se um exemplo de uma função que adiciona dois números inteiros e outro de uma função que não retorna nenhum valor. | ||
| <code c> | <code c> | ||
| Line 256: | Line 257: | ||
| </ | </ | ||
| - | To use a function, it must be called. It is required that a function is declared before call. Example about calling addition function: | + | Para utilizar-se uma função, esta deve ser invocada. Para isso, é necessário que a função seja declarada antes de ser invocada. Um exemplo com a invocação de uma função: |
| <code c> | <code c> | ||
| Line 272: | Line 273: | ||
| </ | </ | ||
| - | The execution of a C-language program is started from // | + | A execução de um programa em Linguagem |
| - | ~~PB~~ | + | < |
| - | ===== Statements | + | ===== Declarações |
| - | ==== If/ | + | ==== Declarações |
| - | Conditional statements enable to execute or skip program code based on based on logic and relational operations. Conditional statement uses a keyword | + | As declarações condicionais, |
| <code c> | <code c> | ||
| Line 296: | Line 297: | ||
| </ | </ | ||
| - | //If// statement can be longer and include code which will be executed in case the statement is false. For this, after // | + | Um // |
| <code c> | <code c> | ||
| Line 319: | Line 320: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| - | ==== Switch | + | ==== Declaração |
| - | When required to compare operations and variables with many different values, it is reasonable to use comparison statement with // | + | Quando é necessário comparar operações e variáveis com várias combinações de diferentes valores, é geralmente recomendável que se use em alternativa uma comparação com base na declaração |
| <code c> | <code c> | ||
| Line 354: | Line 355: | ||
| ===== Loops ===== | ===== Loops ===== | ||
| - | Loops can be used for executing code several times. | + | Os //loops// permitem-nos executar código várias vezes. |
| ==== while loop ==== | ==== while loop ==== | ||
| - | Code marked with // | + | O código encapsulado por um // |
| <code c> | <code c> | ||
| Line 371: | Line 372: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| ==== for loop ==== | ==== for loop ==== | ||
| - | // | + | O loop // |
| <code c> | <code c> | ||
| Line 392: | Line 393: | ||
| </ | </ | ||
| - | ==== Halting | + | ==== Saída de loops ==== |
| - | As and exception exit from // | + | A iteração de ciclos |
| <code c> | <code c> | ||
| Line 418: | Line 419: | ||
| </ | </ | ||
| - | ==== Text operations | + | ==== Operações de texto ==== |
| - | Text operations are needed for microcontrollers foremost for displaying characters and text on LCD. | + | As operações de texto são geralmente utilizadas em microcontroladores para mostrar caracteres e texto num ecrã LCD, por exemplo. |
| ==== sprintf ==== | ==== sprintf ==== | ||
| - | // | + | A função |
| return = sprintf(variable, | return = sprintf(variable, | ||
| - | Example: | + | Exemplo: |
| <code c> | <code c> | ||
| int r = sprintf(buffer, | int r = sprintf(buffer, | ||
| </ | </ | ||
| - | It will load formated text into variable which is given from the function second to n parameter. //sprintf// will simplify composing more sophisticated statements. Easier is to use variables in text that will be replaced by values. Function returns the length of text loaded into variable. In case of error occurrence, negative value is returned. | ||
| - | Example: | + | Esta função carrega a variável passada como primeiro argumento com texto formatado, texto este que é passado como segundo argumento da função, ao qual podem ser atribuídos valores com os seus restantes argumentos. O uso da função //sprintf// permitirá compôr texto mais complexo de maneira mais simples. Como retorno, esta função devolve o tamanho do texto que foi carregado na variável e no caso de erro, um valor negativo é retornado. |
| + | |||
| + | Exemplo: | ||
| <code c> | <code c> | ||
| sprintf(x, "%d. is first", | sprintf(x, "%d. is first", | ||
| Line 446: | Line 449: | ||
| </ | </ | ||
| - | %s and %d are in this case parameters that will be repalaced accordingly by variable values which are the last parameters to function. The number of parameters must be the same as variables. | + | %s e %d neste exemplosão parâmetros que irão ser substituídos pelos valores dos dois últimos parâmetros da função, respetivamente. O número de parâmetros deve igualar ao número de variáveis utilizadas na expressão. |
| - | In the first example, the parameter was %d which was replaced by variable value 1. In the second example parameters were %s and %d which were replaced by variable values | + | No primeiro exemplo, o parâmetro |
| ^ Parameter | ^ Parameter | ||
| Line 469: | Line 472: | ||
| </ | </ | ||
| - | ==== General utilities | + | ==== Funções genéricas |
| - | Standard functions library | + | A biblioteca standard da Linguagem C (stdlib.h) |
| - | ==== Random function | + | ==== Função aleatória |
| - | Generating a random number is not so simple for AVR microcontroller. | + | Não é fácil gerar um número aleatório num microcontrolador. |
| - | At first the random number generator must be inputed with a number to be the basis of random number array generation. The array based on one number is always the same. To make the result more random, the function can be inputed with a values taken from free floating | + | Primeiro, é necessário dar como parâmetro de entrada um //gerador// que servirá como base para a geração do conjunto de números aleatórios. Este conjunto, se for sempre baseado no mesmo número // |
| - | Example: | + | Exemplo: |
| <code c> | <code c> | ||
| srand(100); | srand(100); | ||
| Line 485: | Line 488: | ||
| </ | </ | ||
| - | Example about generating a random number in range of 16: | + | Exemplo de geração de um número aleatório na gama de 1-16: |
| <code c> | <code c> | ||
| #include < | #include < | ||
| Line 493: | Line 496: | ||
| </ | </ | ||
| - | + | Para uma descrição mais detalhada de todas as funções incluídas na Linguagem | |
| - | The more in-depth english description about C-language functions is in: | + | |
| [[http:// | [[http:// | ||