JavaRush /Blogue Java /Random-PT /Materiais adicionais para palestras CS50: Semana 1 (aulas...
Masha
Nível 41

Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4)

Publicado no grupo Random-PT
cs50 em materiais adicionais russos Tarefas da semana 1

Metas da primeira semana

  • Familiarize-se com os comandos básicos do Linux
  • Aprenda a sintaxe C básica e resolva alguns problemas
  • Comece a pensar com mais clareza =)
IDE CS50
Para completar as tarefas, o CS50 oferece um IDE (Integrated Development Environment) na nuvem. Para utilizá-lo, crie uma conta na plataforma edX e cadastre-se no curso original . Depois disso:
1. Acesse cs50.io, selecione edX na lista, digite seu login e senha, clique em Enviar 2. Insira as informações da sua conta edX, clique em Retornar para ID.CS50.NET . cs50.io 3. Estamos aguardando: seu espaço virtual está sendo criado. espaço virtual cs50 4. Pronto! cs50
Linha de comando e inicialização do CS50 IDE
Na parte inferior da janela do CS50 IDE, na guia Terminal, há uma janela de terminal ou painel de linha de comando. Você pode inserir comandos de string aqui: você pode fazer o mesmo que na interface da janela, por exemplo, iniciar aplicativos, excluir e criar arquivos, instalar software. Se você nunca trabalhou com linha de comando, esse método provavelmente parece complicado: você precisa se lembrar dos comandos e digitá-los em vez de clicar em ícones e botões. Até certo ponto isso é verdade, então a interface da janela foi inventada. No entanto, a linha de comando está disponível em todos os sistemas operacionais e os administradores adoram. E tudo porque às vezes você não consegue viver sem ele. Na janela do IDE no terminal, você verá uma linha misteriosa: nome de usuário:~/workspace $ no lugar de “nome de usuário” haverá um nome gerado automaticamente (com base em seus dados de registro). Clique na janela do terminal, digite: update50 Pressione Enter. O comando solicita que o sistema seja atualizado. Você verá linhas aparecerem no terminal descrevendo o processo de instalação. Não feche o CS50 IDE até ver a atualização concluída! . Depois disso, a linha padrão aparecerá novamente, aquela com o seu nome.
Trabalhando no IDE
Vamos criar uma pasta onde seus arquivos serão armazenados. Clique com o botão direito em ~/workspace (seu diretório raiz) no canto superior esquerdo do CS50 IDE e selecione New Folder . Renomeie a pasta pset1 (se você digitou o nome incorretamente, clique com o botão direito na pasta e selecione Renomear ). cs50 ide renomear pasta Em seguida, clique com o botão direito na pasta pset1 e selecione New File . O arquivo Untilted aparece, vamos renomeá-lo como hello.txt . cs50 Clique duas vezes em hello.txt. No CS50 IDE você verá uma nova aba e um campo à direita onde você pode digitar. Se você fez isso, preste atenção ao símbolo de asterisco (*) que aparece antes do nome do arquivo na guia – um indicador de que alterações foram feitas no arquivo, mas não foram salvas. Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 1 Salve o arquivo acessando *Arquivo > Salvar ou usando comando + S (em máquinas Apple) ou Ctrl + S (em PCs). O asterisco deve desaparecer. Vamos verificar se o arquivo está onde deveria estar. Vamos fazer isso usando a linha de comando, é hora de se acostumar :). Como antes, a linha ativa no terminal se parece com isto: username:~/workspace $ Workspace - o diretório de trabalho atual (aquele que está aberto no ambiente de trabalho). O til (~) indica o diretório raiz (o espaço de trabalho está localizado nele). Observe que o espaço de trabalho no terminal é igual ao ícone ~/workspace no canto superior esquerdo do IDE CS50. Vamos praticar. Clique em qualquer lugar do terminal, digite na linha de comando ls e pressione Enter. Essas duas letras minúsculas – abreviação de “lista” – exibirão uma lista de arquivos e pastas localizados dentro do diretório do espaço de trabalho atual. Entre outras coisas, você verá o pset1 que você criou ! Agora vamos abrir nossa pasta usando o comando. Digitamos cd pset1 ou mais detalhadamente: cd ~/workspace/pset1 O comando cd (alterar diretório) altera o diretório ativo, no nosso caso para ~/pset1 A linha ativa mudou para username:~/workspace/pset1 $ Isso confirma que você está agora no diretório ~/workspace/pset1 (a linha significa “Estou em pset1 dentro da área de trabalho pasta, que está na pasta raiz, indicada por ~"). Agora digite ls Você verá o arquivo hello.txt ! Se você clicar no nome no terminal, nada acontece: é texto, e não dá um ativo link, mas confirma que hello.txt está onde deveria estar. Digite cd Se você escrever apenas o comando cd em si, mas não fornecer um argumento (ou seja, o nome da pasta para onde ele deve ir), ele retornará você para o diretório raiz padrão, então você verá a seguinte imagem na linha ativa: username:~ $ Para voltar para uma pasta pset1, disque cd workspace e pressione Enter. Então cd pset1 entre novamente. Você também pode substituir esses dois comandos por um mais autêntico: cd workspace/pset1
Olá, C!
Finalmente esse momento chegou! Vamos começar a programar. Dentro de nossa pasta pset1 no IDE, crie um arquivo chamado hello.c (a extensão é necessária), abra-o em uma nova aba (achamos que você se lembra de como fazer isso no parágrafo anterior). IMPORTANTE! As letras devem ser minúsculas, o Linux diferencia maiúsculas de minúsculas. Hello.c e hello.c são arquivos diferentes. No lado direito da janela do CS50 IDE, digite exatamente o mesmo texto que você vê abaixo. Sim, você pode copiá-lo, mas é mais útil digitá-lo. As letras têm cores diferentes porque o IDE CS50 possui destaque de sintaxe. Ele destaca blocos de texto com cores para melhor legibilidade. As cores não são salvas no próprio arquivo; elas só são visíveis no IDE. Se estiverem lá, então o IDE entende C e você indicou que é C na extensão do arquivo (*.c). Se você chamasse o mesmo arquivo de hello.txt, o texto seria de uma cor. Certifique-se de digitar tudo exatamente como no exemplo, caso contrário você pegará o primeiro bug =). Novamente chamamos sua atenção para a diferença entre letras minúsculas e maiúsculas. O caractere \n move o cursor para a próxima linha e o texto inserido a seguir não ficará junto com a saída do programa. Ah, sim, e não se esqueça do ponto e vírgula (;). Este é um separador importante para instruções de programa; C não vai querer trabalhar sem elas. Clique em Arquivo > Salvar (ou comando ou Ctrl-s). Notou que o asterisco na frente do nome do arquivo desapareceu? Se sim, então as alterações foram salvas. Clique em qualquer lugar na janela do terminal abaixo do seu código e certifique-se de estar dentro de ~/workspace/pset1 (se não estiver, clique com o botão direito do mouse e pressione Enter, depois cd workspace/pset1 e Enter novamente). Sua linha ativa deve ficar assim: Vamos ter certeza de que o arquivo hello.c está exatamente onde deveria estar. Digite e pressione Enter. Você vê hello.c também? Caso contrário, volte algumas etapas e crie novamente o arquivo no diretório desejado. ... Agora chega o momento solene: cruzamos os dedos e... digitamos: e com os dedos cruzados pressionamos Enter. Exatamente olá, não olá.c. Se tudo o que você vê à sua frente após esta ação é a segunda linha ativa, que se parece exatamente com a anterior, então tudo está funcionando! Seu código-fonte foi traduzido em código de máquina ou objeto (ou seja, na sequência de 0s e 1s). Agora este código pode ser executado (ou seja, o programa pode ser executado!). Para fazer isso, digite: na linha de comando, pressione Enter. Se você não alterou o texto entre os "", verá abaixo: Se você digitar o comando agora e pressionar Enter, verá um novo arquivo hello, junto com hello.c e hello.txt. O primeiro alô deve ter um asterisco após o nome, o que sinaliza que se trata de um arquivo executável, ou seja, aquele com o qual você inicia o programa. #include int main(void) { printf("hello, world\n"); } username:~/workspace/pset1 $lsmake hello./hellohello, worldls
Insetos?
Se após o comando make você encontrar erros, é hora da primeira depuração! Inscrições como “declaração esperada” significam que você cometeu um erro de digitação em algum lugar. Verifique o código acima novamente, mas tome muito cuidado com todos os detalhes. Atenção! As descrições dos erros são fornecidas em inglês. Se não estiver claro, use um mecanismo de busca, o Google Tradutor, ou faça uma pergunta nos comentários. Depois de corrigir os erros, não se esqueça de salvar seu código usando Arquivo> Salvar (ou comando ou Ctrl-s), clique no interior da janela do terminal novamente e digite make hello (apenas certifique-se de estar em ~ /workspace/pset1 primeiro). Se não houver mais erros, execute o programa digitando o comando.Em ./hello teoria, a cobiçada frase deveria aparecer na sua frente, entre aspas do operador printf, que comanda “imprimir”. Se a janela do terminal parecer muito pequena, clique no ícone de mais (+) circulado ao lado de hello.c.
Verificando a correção
O aplicativo check50 está integrado ao IDE CS50. Ele funciona a partir da linha de comando e verifica se há erros em alguns programas. Se você ainda não chegou lá, vá para o diretório ~/workspace/pset1 executando o comando no terminal: cd ~/workspace/pset1 Agora execute ls , você verá pelo menos um arquivo hello.c. Certifique-se de que o nome do arquivo seja assim e não, digamos, Hello.c ou hello.C. Você pode renomear um arquivo executando o comando mv source destination origem - o nome do arquivo atual, destino - o novo nome do arquivo. mv (do inglês move) é um utilitário de renomeação. Se você acidentalmente nomeou o arquivo como Hello.c, digite a linha: mv Hello.c hello.c Depois de certificar-se de que o nome do arquivo é exatamente hello.c, vamos chamar o programa de verificação check50. Observe que 2015.fall.pset1.hello é um identificador exclusivo para o problema “hello world”. check50 2015.fall.pset1.hello hello.c Se o programa for executado corretamente, você verá: Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 2 Carinhas sorridentes verdes significam que o teste foi aprovado. Você também pode ver o URL na parte inferior da saída do check50, mas é apenas para funcionários (no entanto, se estiver interessado, dê uma olhada!). check50 executa 3 testes: se o arquivo hello.c existe, se hello.c compila e se a aplicação produz uma linha que diz "hello, world\n". Se você vir emoticons vermelhos tristes, significa que você tem um bug. :( hello.c exists \ expected hello.c to exist :| hello.c compiles \ can't check until a frown turns upside down :| prints "hello, world\n" \ can't check until a frown turns upside down Aqui, check50 não encontrou hello.c, e o smiley vermelho indica que você cometeu um erro no nome ou carregou o arquivo no lugar errado. Emoticons amarelos “neutros” significam que os testes não foram executados. E por onde começar se o programa não encontrar o arquivo que precisa ser verificado? Aqui está outra opção que aparecerá se você alterou o texto que a função printf() deveria gerar: :) hello.c exists :) hello.c compiles :( prints "hello, world\n" \ expected output, but not "hello, world" check50 informa que a linha hello, world\n era esperada, mas algo mais apareceu. check50 não conta pontos pela conclusão do curso, mas verifica se o resultado da tarefa difere do esperado. E permite que você verifique isso antes de confirmar a correção da tarefa dentro do curso (mostraremos como fazer isso mais tarde).
Noções básicas de C: comparação com Scratch
Olá mundo no Scratch e C:
Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 3 #include int main(void) { printf("hello, world\n"); }
  • Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 4representa uma função que imprime as "palavras" de um sprite em um balão de quadrinhos no Scratch, existe uma função printf em C que faz a mesma coisa, só que sem os desenhos animados.
  • principal - em inglês - “principal”. Ponto de entrada no programa. Igual a Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 5.
Ciclo sem fim
Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 6 traduzido para C: while (true) { printf("hello, world\n"); } while (true) faz a mesma coisa: o loop continua seu trabalho enquanto (while) o valor é verdadeiro (a expressão booleana “true” ou “one”). Este loop será executado indefinidamente.
Um loop que exibe uma frase na tela 10 vezes
Scratch Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 7 C for (int i = 0; i < 10; i++) { printf("hello, world!\n"); } i é uma variável contadora; seu valor é alterado pelo operador de incremento i++, aumentando-o em 1 a cada iteração do loop. Inicialmente, i recebe o valor 0 usando o operador de atribuição =. Atenção! Como em Java, em C a igualdade é denotada por ==, o operador de atribuição =. Ou seja, a = 5 significa que à variável a foi atribuído o valor 5, e (a= =5) significa uma expressão de Boulogne (se a for igual a 5, então a expressão é verdadeira, se não for igual, então falsa) . O loop irá parar quando i “crescer” para 9. É fácil de calcular, o loop será executado 10 vezes. Então, se você precisar repetir algo um certo número de vezes, em C você define um loop for (int i = 0; i < 10; i++). Outro exemplo: Materiais adicionais para palestras CS50: Semana 1 (aulas 3 e 4) - 8 E a mesma coisa traduzida para C: int counter = 0; while (true) { printf("%i\n", counter); counter++; }
  • contador armazena valor em C e Scratch. Em C definimos int counter = 0 em vez de Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 9.
  • Marcamos o tipo da variável como int para esclarecimento: i é um número inteiro (do inglês inteiro, inteiro).
  • O %i que usamos em printf na linha quatro é um espaço reservado que nos diz para imprimir o número inteiro decimal, assim como dizemos ao printf para substituir o espaço reservado pelo valor que a variável do contador assume.
Expressões Booleanas
Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 10 É o mesmo que (x < y) ((x < y) && (y < z))
Condições
Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 11 E o equivalente “merda”: Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 12 e a primeira frase incompreensível? Mais sobre isso mais tarde, na seção “Bibliotecas”. #include
Declarações condicionais
Esses caras verificam se alguma condição (uma expressão lógica, uma pergunta que só pode ser respondida com “sim” ou “não”) é verdadeira e, em caso afirmativo, realizam algumas ações vinculadas a essa condição. Um exemplo da vida: se chove (supondo que chova) e eu estou fora (estou lá fora quando chove), abro meu guarda-chuva. if (condition) { //исполнить, если meaning истинно } Uma opção mais complicada: se a condição for atendida, execute uma ação; caso contrário, execute outra ação. if (condition) { //выполнить действие } else { //выполнить другое действие, если condition ложно } Exemplo: se você tem mais de 18 anos, aprove o acesso. Se for menor, não será aprovado. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 12
Operador de seleção
switch (n) { case const1: // если n equals const1, выполнить break; // condition совершилось — выйти из выбора case const2: // если n equals const2, выполнить break; ... default: // если n не equals ни одной из констант, выполнить break; } Exemplo: se n = 50, imprima "CS50 é Introdução à Ciência da Computação I", se n = 51, imprima "CS51 é Introdução à Ciência da Computação II", caso contrário, imprima "Desculpe, não estou familiarizado com essa aula!" switch (n) { case 50: printf("CS50 is Introduction to Computer Science I\n"); break; case 51: printf("CS51 is Introduction to Computer Science II\n"); break; default: printf("Sorry, I'm not familiar with that class!\n"); break; }
Ciclos
while: verifica a condição e depois executa a ação enquanto a condição é verdadeira while (condition) { // выполнять, пока истина } do/while é diferente porque na primeira vez executa a ação sem verificar a condição e apenas a verifica. Se a condição for verdadeira, ele repete a ação até que a condição se torne falsa. do { ) // выполнять, пока истина } while (condition); O loop for repete uma ação um número especificado de vezes. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 13 Os loops podem ser aninhados uns nos outros. Neste caso, a cada passo do loop externo, o loop interno será totalmente executado. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 14
Tipos de dados básicos em C
основные типы данных в C
Bibliotecas C
Você provavelmente já se perguntou o que significa a primeira linha de um programa C: Qual é a sua função e é possível passar sem ela? A linha #include faz uma coisa muito importante: inclui bibliotecas de código já escrito em seu programa. O nome da biblioteca conectada está entre colchetes angulares (<>) e possui uma extensão (.h). Se não houvesse bibliotecas, qualquer ação, mesmo a mais básica, teria que ser descrita continuamente. Biblioteca que conectamos#include contém funções de entrada/saída. É isso que nos permite usar a função printf() para imprimir na tela. Isto é, se não tivéssemos escrito a linha #include , mas deixou a função printf() no corpo do programa; quando tentássemos executá-la, teríamos recebido um erro! Porque sem esta biblioteca o compilador não sabe o que é printf(). Existem bibliotecas padrão, elas constituem o vocabulário da linguagem. A função printf() não está embutida no computador, mas está incluída na biblioteca padrão C. Ou seja, algum programador a escreveu anteriormente e a incluiu na biblioteca. Agora, outros podem usá-lo sem reinventar a roda. Para que o compilador “entenda” isso, conectamos . Existem outras bibliotecas padrão usadas no processo CS50. Por exemplo, uma biblioteca de strings, que descreve operações com strings (determinação de comprimento, adição, etc.). Em comparação com outras linguagens de programação populares, o número de bibliotecas C padrão é muito pequeno. Mas existem bibliotecas autoescritas, na maioria das vezes mais especializadas. Sim, biblioteca foi criado especificamente para alunos CS50. É hora de fazer uma observação importante: além de escrever programas e resolver problemas usando seu próprio código, um bom desenvolvedor possui outra habilidade importante: conhecimento de ferramentas que já foram escritas e capacidade de utilizá-las (bibliotecas de outras pessoas) para que não perder tempo reinventando a “roda”. Portanto, se você está resolvendo um problema tedioso ou complexo que parece bastante comum, aprenda a se perguntar: “outra pessoa escreveu a solução?” Há boas chances de que seja esse o caso, e você pode encontrar essa função em uma biblioteca existente. Em termos técnicos, uma biblioteca é um arquivo binário produzido pela combinação de uma coleção de arquivos objeto usando um vinculador. Arquivos objeto são aqueles arquivos com extensão (*.o) que você obtém ao compilar aplicativos.
Estrutura das bibliotecas C
Когда программист пишет библиотеку, code распределяется по двум типам файлов — заголовочный файл (header, расширение *.h) и файл реализации (implementation, расширение *.c). Заголовочный файл содержит code, описывающий ресурсы библиотеки, которые вы можете использовать. То есть описания переменных, функций, структур, типов и прочее. Если вам интересно, что содержит та or иная библиотека, нужно заглянуть именно в заголовочный файл. В терминале CS50 IDE (и других средах Linux) вы можете вызвать приложение less для просмотра файлов и открыть с его помощью интересующую вас библиотеку: less /usr/include/stdio.h Файл откроется прямо в терминале. Правда, для новичков он будет очень трудночитаемым. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 15 Whatбы выйти из less, нажмите q на клавиатуре. Заголовочный файл не содержит code функций, что служит примером очень важного понятия — сокрытия данных or инкапсуляции. Пользователю системы незачем знать «внутренности» библиотек, ему достаточно, чтобы она работала. Если вы прошерстите stdio.h, то не найдете там реализации printf(), хотя How её использовать, вы уже знаете. Это сделано для того, чтобы защитить данные от вмешательства, которое порой может плохо отразиться на системе. Так, если кто-то изменит реализацию функции printf() в библиотеке, это отразится на всех тех программах, которые её используют. Любознательным будет интересно, где спрятана реализация. Согласно конвенции (соглашения, принятые в мире программирования) такой code хранят в файле с расширением (*.c). После компиляции библиотеки на основе двух файлов с одинаковым именем, но разным расширением создается an objectный файл, который собран так, чтобы создать файл с двоичным codeом библиотеки. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 16 Author библиотеки передает программисту, который хочет её использовать, два file — с двоичным codeом, а также заголовочный файл. Таким образом, файл с исходным codeом программисту не нужен. Точнее, он может быть нужен, если программист хочет что-то поменять в самой библиотеке и перекомпorровать её под собственные нужды. Whatбы воспользоваться функциями библиотеки в своей программе нужно проделать следующее: 1. Включить заголовочный файл в программу с помощью строки #include В случае стандартных библиотек достаточно указать Name библиотеки в угловых скобках: #include <Name_библиотеки.h> Если библиотека, которую вы хотите подключить, лежит в той же папке, что и ваша программа, подключайте её следующим образом: #include “Name_библиотеки.h” 2.Присоединить бинарный файл для компиляции. Это очень важный шаг, поскольку, How мы говорor выше, заголовочный файл не содержит реализации элементов библиотеки. Whatбы это сделать, нужно вызвать компилятор clang с флагом –l и идущим непосредственно за ним названием библиотеки. Например, компонуем библиотеку cs50: clang hello –lcs50 Clang — один из компиляторов. Для компиляции можно также использовать уже знакомую вам программу make. По сути, она вызывает clang с определенными аргументами командной строки.
И снова Hello C: разбор синтаксиса простейших программ
Директива #include подключает библиотеку ввода/вывода . Программы в C состоят из функций, а те — из операторов и переменных. Функция — это кусок codeа, в котором уже есть or подаются Howие-то данные, а Howие-то данные получают в результате её исполнения. Фигурные скобки { } ограничивают тело функции — описание того, что она должна делать. printf() из стандартной библиотеки stdio выводит любую строку на экран. Строки заключаются в двойные кавычки, а символ “\n” означает перевод курсора на новую строку. Пример: функция «посчитать квадрат целого числа». Передаем функции данные, в нашем случае — число, которое нужно возвести в квадрат. Затем в ней прописывается алгоритм умножения числа на самое себя, и результат этого умножения она выдает на выходе. int sqr(int a) { return a*a; } int sqr(int a) — название функции. В скобках — её аргумент a, это то, что подается на вход функции. Это How переменная в уравнении. То есть, если мы хотим узнать квадрат числа 5, то мы вызовем нашу функцию в виде sqr(5) и получим результат 25. int — тип данных (от англ. integer — целые числа). Наша функция написана так, что мы не можем вызвать её с аргументом a = 5.5. Такая попытка выдаст ошибку, поскольку 5.5 — число дробное, а наше число должно быть целым. int перед именем функции означает тип, который должна эта функция возвращать. Он не обязательно совпадает с типом аргумента. Пример: функция, которая отнимает от целого числа 0.5: double bit_less(int a) { double b; b = a – 0.5; return b; } int main (void) — название главной функции. В одной программе может быть много функций, но, чтобы начать её выполнять, нужна функция под названием main. Слово void в скобках означает, что у этой функции нет аргументов. Внимание! main всегда возвращает int, но return для неё не обязателен. Пример функции не возвращающей значения: void sayhello(void) { printf(“hello everyone!\n”); } При вызове функции в главной программе, она выведет приветствие. Давайте напишем одну программу, в которой будет несколько функций. Тех, что мы уже создали выше. Две созданные нами функции вызовем через главную функцию main(). В C, How и любом языке, есть такой элемент, How комментарий or примечание в коле программы, предназначенное не для компьютера, а для понимания людей. Например, описание, что именно делает code. Компилятор комментариев не видит. Комментирование программ — очень важный момент, поскольку порой разобраться в чужом (и даже своем) codeе очень сложно. //пример однострочного комментария /** а это – многострочного **/ #include //функция возведения в квадрат числа a int sqr(int a) { return a*a; } //выводит приветствие void test(void) { printf ("hello everyone!\n"); } //главная функция int main(void) { test(); printf("%d\n", sqr(5)); } Почти всё, что есть в этой программе вы уже видели. Две функции — возведения в квадрат и приветствия и главная функция main, где мы последовательно вызываем эти две функции. В результате выполнения программы у нас сначала выведется приветствие, на следующей строке — квадрат 5. Обратите внимание, функция test() вызывается с пустыми скобками, потому что её аргументы определены How void.
Еще немного о вводе/выводе в C
Вы, наверное, уже успели заметить странные символы %d и %f в скобках оператора printf. Дело в том, что функция printf выводит данные в следующем обобщенном виде: рrintf ("управляющая строка", аргумент1, аргумент2,...); Управляющая строка содержит компоненты трех типов:
  • символы, которые выводятся на экран дисплея;
  • спецификаторы преобразования, которые вызывают вывод на экран очередного аргумента из последующего списка;
  • управляющие символьные константы.
Спецификатор преобразования начинается со знака % и заканчивается символом, задающим преобразование. Некоторые из таких символов:
  • с: meaningм аргумента является символ;
  • d or i: десятичное целое число;
  • f: десятичное число с плавающей точкой;
  • s: строка символов.
То есть, %d означает, что на экране появится целое десятичное, а %f — десятичное с плавающей запятой. What если нам нужно, чтобы пользователь ввёл данные с клавиатуры? Для этого можно использовать функцию scanf( ), прототип которой также лежит в библиотеке stdio. Whatбы считать с экрана вещественное число, в программе нужно написать строку scanf("%d", &a); Давайте перепишем нашу программу так, чтобы пользователь сам вводил число, которое нужно возвести в квадрат. Дополнительные материалы к лекциям CS50: Week 1 (лекции 3 и 4) - 17
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION