Ir para conteúdo
Fórum Script Brasil
  • 0

Curso de C (um semestre)


Beraldo

Pergunta

Vou colocar aqui o conteúdo que usei na faculdade (UFPR) para estudar C. Há um guia bem completo e diversas listas de exercícios.

Aproveitei e coloquei os links para as duas provas que tivemos no semestre. É bom para testar os conhecimentos depois de estudar todo o conteúdo e fazer todos os exercícios das listas. ;)

Tudo isso foi feito em um semestre. É bom não se estender muito para estudar isso.

Guia da Linguagem C - Notas de Aula (Profa. Carmem Hara e Prof. Wagner Zola - UFPR):

http://www.inf.ufpr.br/nicolui/grad/ci067/Docs/NotasAula/

Versão em PDF:

http://www.inf.ufpr.br/nicolui/grad/ci067/Docs/NotasAula.pdf

Lista de Exercícios:

Lista 1 - Conceitos Gerais: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_01/index.html

Lista 2 - Strings: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_02/index.html

Lista 3 - Ponteiros e Alocação Dinâmica: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_03/index.html

Lista 4 - Arquivos: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_04/index.html

Lista 5 - Recursividade: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_05/index.html

Lista 6 - Makefiles e Depuração (voltado para sistemas Unix): http://www.inf.ufpr.br/nicolui/grad/ci067/...s_06/index.html

Lista 7 - Listas, Pilhas e Filas: http://www.inf.ufpr.br/nicolui/grad/ci067/...s_07/index.html

Lista complementar de exercícios:

http://www.inf.ufpr.br/nicolui/grad/ci067/...s_08/index.html

Provas:

Prova 1: http://geocities.com/rbchaiben/p1-20082.pdf

Prova 2: http://geocities.com/rbchaiben/p2-20082.pdf

E aqui está o link para a especificação do trabalho da disciplina nesse semestre:

http://geocities.com/rbchaiben/labirinto.html

-----

Outras contribuições:

Projeto de Algoritmos

Contribuição de OSJunior

57 Exercícios de C

Contribuição de viciado

Apostila com exercícios resolvidos:

Link para download: http://www.si-fgs.h-br.com/forum/download/file.php?id=11

Link para o tópico: http://www.si-fgs.h-br.com/forum/viewtopic.php?f=77&t=29

Contribuição de GabrielCardelli

Sockets em C/C++

http://www.inf.ufrgs.br/procpar/disc/inf01...rte1.html#intro

http://www.di.ufpe.br/~dmts/sockets/ <~ link com download de apostilas e exercícios

http://olinux.uol.com.br/artigos/370/1.html <~ bem completo

http://www-usr.inf.ufsm.br/~giovani/sockets.html

http://www.dicas-l.com.br/dicas-l/20041219.php <~ c++

Contribuiçã de wendell93

Editado por Beraldo
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tentei fazer o 5 da lista de string não consegui:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char str[10];
  printf("Digite uma string \n");
  fgets(str, 10, stdin);
  int i;
  for(i=0;i<10;i++){   
               if(i==2){               
               printf("O terceiro caractere e: %s \n",str[2]);
               }
               }
  system("PAUSE");    
  return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Você não precisa de um loop para exibir o terceiro caractere.

VocÊ sabe, exatamente, o que quer exibir, então basta isto:

int main()
{
  char str[10];
  printf("Digite uma string \n");
  fgets(str, 10, stdin);
  printf("O terceiro caractere e: %c \n",str[2]);
   return 0;
}
VocÊ está mostrando um char, logo use %c, e não %s Uma observação importante: uma string, em C, termina em '\ 0' (sem espaço). Logo, se declararmos char str[10], estaremos possibilitando a inserção de apenas 9 caracteres, pois o décimo deverá ser o '\ 0'. ALém disso, considerando que fgets() adiciona o '\n' da string, o certo seria limitar a leitura de fgets() a 8 bytes e não 10. Genericamente: no fgets(), limite SEMPRE o tamanho da string menos duas unidades:
char str[10];
fgets(str, 8, stdin);

Vale ressaltar: NÃO USE GETS(). USE FGETS()

http://www.linhadecodigo.com.br/Dica.aspx?id=1141

http://wiki.answers.com/Q/Between_fgets_an..._to_use_and_why

http://publib.boulder.ibm.com/infocenter/s...setrf1/gets.htm

Mais em:

http://www.google.com/search?ie=UTF-8&...mp;q=gets+fgets

Link para o comentário
Compartilhar em outros sites

  • 0
Você não precisa de um loop para exibir o terceiro caractere.

VocÊ sabe, exatamente, o que quer exibir, então basta isto:

int main()
{
  char str[10];
  printf("Digite uma string \n");
  fgets(str, 10, stdin);
  printf("O terceiro caractere e: %c \n",str[2]);
   return 0;
}
VocÊ está mostrando um char, logo use %c, e não %s Uma observação importante: uma string, em C, termina em '\ 0' (sem espaço). Logo, se declararmos char str[10], estaremos possibilitando a inserção de apenas 9 caracteres, pois o décimo deverá ser o '\ 0'. ALém disso, considerando que fgets() adiciona o '\n' da string, o certo seria limitar a leitura de fgets() a 8 bytes e não 10. Genericamente: no fgets(), limite SEMPRE o tamanho da string menos duas unidades:
char str[10];
fgets(str, 8, stdin);

Vale ressaltar: NÃO USE GETS(). USE FGETS()

http://www.linhadecodigo.com.br/Dica.aspx?id=1141

http://wiki.answers.com/Q/Between_fgets_an..._to_use_and_why

http://publib.boulder.ibm.com/infocenter/s...setrf1/gets.htm

Mais em:

http://www.google.com/search?ie=UTF-8&...mp;q=gets+fgets

Obrigado. Grande professor

Link para o comentário
Compartilhar em outros sites

  • 0

Não estou conseguindo desenvolver a 7 da parte II!! Abaixo meu codigo!!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    char nome[100],sobre[100];
    int ret,cont,conts=0;
    printf (" Digite o Seu nome Completo: ");
    fgets (nome, 98, stdin);
    ret = strlen(nome);
    cont = ret;
    while (nome[cont] != ' ')
        {   
            sobre[conts] = nome[cont];
            nome[cont] = '';
            cont=cont-1;
            conts=conts+1;
        }
    printf (" %s , %s",sobre,nome);
    getch();
}

Abc

Link para o comentário
Compartilhar em outros sites

  • 0
Não estou conseguindo desenvolver a 7 da parte II!! Abaixo meu codigo!!

Uma dica:

http://scriptbrasil.com.br/forum/index.php...st&p=525632

Alguém entendeu o exercício 14 da lista de ponteiro ?

lexicograficamente = em ordem alfabética

Para tratar opções de linha de comando, pode usar argc e argv. Para situações mais complexas, há bibliotecas para isso. No Linux, dá para usar getopt(), da unistd.h, mas não sei se há algo semelhante em Windows.

Achei um link com 57 exercícios

57 Exercícios

Link adicionado.

Obrigado pela contribuição

Link para o comentário
Compartilhar em outros sites

  • 0

Ae galera quando eu tava em aula o professor passou uma apostila com muitos exercicíos resolvidos sobre diversos assuntos para todos poderem ver exemplos

ta ae o Link

Download: http://www.si-fgs.h-br.com/forum/download/file.php?id=11

Caso não consigam acessar abaixo o Link do post

http://www.si-fgs.h-br.com/forum/viewtopic.php?f=77&t=29

Abc!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom tava procurando links para estuda programação de sockts em c/c++

e axei esses. então va q alguém se interesse por isso também

vou deixa aq os link

obs: eu n li todos mas todos se referem a programação de socket em c/c++.

Té+.

Sokets:

http://www.inf.ufrgs.br/procpar/disc/inf01...rte1.html#intro

http://www.di.ufpe.br/~dmts/sockets/ <~ link com download de apostilas e exercícios

http://olinux.uol.com.br/artigos/370/1.html <~ bem completo

http://www.inf.ufrgs.br/procpar/disc/inf01...rte1.html#intro

http://www-usr.inf.ufsm.br/~giovani/sockets.html

http://www.dicas-l.com.br/dicas-l/20041219.php <~ c++

Link para o comentário
Compartilhar em outros sites

  • 0

Bom tutorial de C,

Acho que vou começar a estudar a linguagem C ao invés da Pascal...

Apropósito... não vo prescisa de compilador nenhum né...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, já aprendi umas coisas bem legais em C, e aprovo C, acho que vou largar o Pascal mas... um bom programador sabe varias linguagens, então, vou largar o Pascal mas vou aprende-lo depois

Link para o comentário
Compartilhar em outros sites

  • 0

Erro de compilação no exercicio 6 da lista de contribuições(57 exercicios de C):

A questao era criar um programa para imprimir o módulo exato do numero posto pelo usuário, eis o meu codigo:

#include <stdio.h>
#include <stdlib.h>

main()
{
      int a;
      
      Printf("Digite um numero:/n");
      Scanf("%d",&a);
      If(a>=0);
      Printf("O módulo desse numero é %d /n", a);
      Else
      Printf("O módulo desse numero é %d /n", a*(-1)); /*Esta é a linha que o compilador Dev-C++ diz que da erro*/
      system("pause");
      return 0;      
}

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos manter este tópico somente co indicações de materiasis.

Para dúvidas, criem ourtros tópicos. :)

Isso deixa o tópico mais limpo e objetivo

E, por favor, poste a mensagem de erro. Ela serve para apontar o erro. Sem ela, fica bem mais difícil achar os erros.

Primeiro: C é case-sensitive. Use letras minúsculas. printf em vez de Printf, por exemplo.

Segundo: há um ponto-e-vírgula após o if. retire-o

Editado por Beraldo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...