Upload
duongngoc
View
212
Download
0
Embed Size (px)
Citation preview
DisciplinaObjetivo: Familiarizar os alunos com a modelagem ea implementação de diferentes estruturas de dados,bem como os algoritmos para gerenciá-las.
Não é um curso de C:Trata-se de um curso para modelar e gerenciarestruturas de dados em memória principal, usandoa linguagem C.
DisciplinaObjetivo: Familiarizar os alunos com a modelagem ea implementação de diferentes estruturas de dados,bem como os algoritmos para gerenciá-las.
Não é um curso de C:Trata-se de um curso para modelar e gerenciarestruturas de dados em memória principal, usandoa linguagem C.
Disciplina
Por que C?Porque a linguagem deixa a cargo do programadortodas as operações necessárias para ogerenciamento das estruturas de dados e permite amanipulação de estruturas e ponteiros de maneiraexplícita.
A linguagem C
C é uma linguagem de programação compilada,imperativa e procedural, criada em 1972.
É uma das linguagens de programação maispopulares e a maioria dos sistemas possuicompilador para a linguagem C.
Método de EnsinoComeçaremos com noções básicas de C ecompararemos com o que já aprendemos em Java.
Em seguida, para cada estrutura de dados a servista na disciplina:
Discutiremos a lógica da estruturaModelaremos em CImplementaremos as funções para gerenciá-la
Método de Ensino
Gerenciamento das estruturas:InicializaçãoInserção de elementosExclusão de elementosBusca por um elemento específicoContagem do número de elementos
Método de EnsinoIndução ao erro:Errar é uma das melhores formas de aprender
Implica experimentar e analisar os resultados
Em vários casos apresentaremos programaspropositalmente errados, para que o aluno possaver o comportamento do sistema e identificar arazão do erro
C não é orientada a objetosÉ uma linguagem imperativa e estruturada.Ela permite de maneira mais explícita a alocação edesalocação de memória, gerenciamento deponteiros e estruturas
Existem outras linguagens inspiradas/baseadas emC que são orientadas a objetos como C++ e C#, masnesta disciplina trabalharemos apenas com C
DisciplinaA quem se destina o curso?Ao aluno que já tem noção de programação e queraperfeiçoar seus conhecimentos sobre modelageme gerenciamento de estruturas de dados
Quem não sabe programar poderá aprenderdiversos conteúdos, porém o curso é estruturadopensando naqueles que já têm noção deprogramação
Material – do que precisaremos?Um compilador CO mais conhecido é o GCC para Unix/Linux/Mac(https://gcc.gnu.org/) e costuma já estar instaladonas máquinas que utilizam esses sistemasPara Windows, dois dos mais usados são MinGW(http://www.mingw.org/) e LCC(https://www.cs.virginia.edu/~lcc-win32/).
Baixe um para sua plataforma
Material
Usaremos uma IDE?Integrated Development Environment – ambienteintegrado para desenvolvimento de software (editor,compilador, depurador, etc)
Há várias opções que podem ser usadas...
E qual usar?
Material – IDEsE o queassumiremos quevocê tem?
Notepad++https://notepad-plus-plus.org/
cmd
Material – IDEsPor que não assumiremos uma IDE?
Melhor modo de se entender o que acontece emnosso programa – não há interferência de nada,tentando nos “ajudar”
Não há a carga cognitiva exigida para aprender ausar a IDE
Material de Apoio
Listas de ExercícioEm conjunto com as aulas teremos algumas listascom exercícios
É de extrema importância que sejam feitas, poisacompanham o conteúdo, aumentando o grau dedificuldade a cada exercício
Material de Apoio
Listas de ExercícioNão esqueça que programação não é uma disciplinateórica
Somente a prática faz um bom programador
Um primeiro programa
Em Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public class HelloWorld {
public static void main(String[] args){
public static void main(String[] args){
System.out.println("Hello World!");
System.out.println("Hello World!");
}
}
}
}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){
public static void main(String[] args){
System.out.println("Hello World!");
System.out.println("Hello World!");
}
}
}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:
#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
#include <stdio.h>
int main() {
int main() {
printf("Hello World!\n");
printf("Hello World!\n");
return 0;
return 0;
}
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {
int main() {
printf("Hello World!\n");
printf("Hello World!\n");
return 0;
return 0;
}
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {
int main() {
printf("Hello World!\n");
printf("Hello World!\n");
return 0;
return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {
int main() {
printf("Hello World!\n");return 0;
return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java
$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld
$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Um primeiro programaEm Java:public class HelloWorld {
public static void main(String[] args){System.out.println("Hello World!");
}}
Em C:#include <stdio.h>
int main() {printf("Hello World!\n");return 0;
}
Como executar?
$ javac HelloWorld.Java$ java HelloWorld
$ gcc HelloWorld.c -o HelloWorld$ ./HelloWorld
Saída$ Hello World!
Códigos
Os códigos desta disciplina são baseados naapostila “ACH2023 - Algoritmos e Estruturas deDados” de Willian Yukio Honda e Ivandré ParaboniE estão disponíveis em:http://www.each.usp.br/digiampietri/ed/