SlideServe
Menu
Préférences
© SlideServe · v2026

C/C++ Basics

grover avatar
27 diapositives · 546 Views · Sep 03, 2014

C/C++ Basics. Basic Concepts. Basic functions of each language: Input, output, math, decision, repetition Types of errors: Syntax errors, logic errors, runtime errors. Debugging Machine language, assembly language, high level languages. Procedural Programming. Data Element. Procedure B.

C/C++ Basics - slide 1
01 / 27C/C++ Basics
1 / 17

Télécharger la présentation

C/C++ Basics
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. C/C++ Basics

  2. Basic Concepts • Basic functions of each language: Input, output, math, decision, repetition • Types of errors: Syntax errors, logic errors, runtime errors. • Debugging • Machine language, assembly language, high level languages

  3. Procedural Programming Data Element Procedure B Procedure A

  4. Procedural languages … • Global variables • Primitive data types, Arrays, Records/Structures • lots of functions/procedures/modules • Uniqueness of “names” requirement Struct + protection + methods ~= class (OOP)

  5. SW Complexity reality SW Complexity Size of the application – Lines of Code

  6. SW complexity? • Lots of lines in code – hard to understand • Not many meaningful comments • Too many variables – not named well • Complex functions – too nested, too lengthy, too many if conditions • Inter-dependancies – changes that have to be done together in multiple files • When you fix a bug, you make a few more.

  7. SW Complexity SW Complexity ideal Size of the application – Lines of Code

  8. Object-Oriented Programming Programming Interface Other objects Object Attributes (data)typically private to this object Methods(behaviors / procedures)

  9. C vs. C++ • C++ is backward compatible with C • C++ supports OOP • C++ standard library contains lot more functionality • Improved I/O mechanism • Lot of new header files • C is very efficient, C++ is close too. • …

  10. C++ vs. Java: Similarities • Both support OOP. Most OOP library contents are similar, however Java continues to grow. • Syntax is very close – Java has strong influence of C/C++. Easy to learn the other language when you know one of these.

  11. C++ vs. Java: differences

  12. C standard library • http://en.wikipedia.org/wiki/C_standard_library • stdio.h: scanf(), printf(), getchar(), putchar(), gets(), puts(), … • stdlib.h: atof(), atoi(), rand(), srand(), malloc(), free(), … • math.h: sin(), cos(), sqrt(), … • string.h: strcpy(), strcmp(), … • ctype: isdigit(), isalpha(), tolower(), toupper() • …

  13. Sample C programs: prog1.cThese are in ~veerasam/students/basics #include <stdio.h> main() { int in1, out; double in2; puts("Enter values:"); scanf("%d%lf", &in1, &in2); // & means "address of" // %d int, %f float, %lf double out = in1 + in2; printf("Output is %d\n", out); }

  14. Sample C programs: prog2.c #include <stdio.h> #include <stdlib.h> main() { char line[10]; int out; gets(line); puts(line); out = 2 * atoi(line); printf("%d\n", out); }

  15. Sample C programs: prog3.c #include <stdio.h> #include <stdlib.h> main() { srand(getpid()); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); }

  16. Sample C programs: prog4.c #include <stdio.h> int add(int x, int y) { return x + y; } main() { int in1, in2, out; puts("Enter values:"); scanf("%d%d", &in1, &in2); out = add(in1, in2); printf("Output is %d\n", out); }

  17. Sample C programs: simple.c #include <stdio.h> main() { int i, arr[10]; puts("Let me init the array contents."); for( i=0 ; i<20 ; i++) arr[i] = i; puts("Well, I survived!"); return 0; }

  18. Sample C programs: simple.c #include <stdio.h> main() { int i, arr[10]; puts("Let me init the array contents."); for( i=0 ; i<20 ; i++) arr[i] = i; puts("Well, I survived!"); return 0; }

  19. Sample C programs: simple2.c main() { puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); puts("Let me init array contents."); for( i=-10 ; i<20 ; i++) array[i] = i; puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); puts("\nWell, I survived!"); return 0; } #include <stdio.h> int i, array[10], array2[10]; printArray(int *arr) { int i; for(i=0 ; i<10 ; i++) printf("%d\n",arr[i]); }

  20. Sample C programs: simple1.c #include <stdio.h> int i, array[10], array2[10]; main() { puts("\nArray's contents are"); for( i=0 ; i<10 ; i++) printf("%d\n",array[i]); puts("\nArray2's contents are"); for( i=0 ; i<10 ; i++) printf("%d\n",array2[i]); puts("Let me init the array contents."); for( i=-10 ; i<20 ; i++) array[i] = i; puts("\nArray's contents are"); for( i=0 ; i<10 ; i++) printf("%d\n",array[i]); puts("\nArray2's contents are"); for( i=0 ; i<10 ; i++) printf("%d\n",array2[i]); puts("\nWell, I survived!"); return 0; }

  21. Sample C programs: simple3.c main() { int i, array[10], array2[10]; puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); puts("Let me init array contents."); for( i=-10 ; i<20 ; i++) array[i] = i; puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); puts("\nWell, I survived!"); return 0; } #include <stdio.h> printArray(int *arr) { int i; for(i=0 ; i<10 ; i++) printf("%d\n",arr[i]); }

  22. Sample C programs: simple4.c second() { int i, array[10], array2[10]; puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); puts("Let me init array contents."); for( i=-10 ; i<20 ; i++) array[i] = i; puts("\nArray's contents are"); printArray(array); puts("\nArray2's contents are"); printArray(array2); } #include <stdio.h> printArray(int *arr) { int i; for(i=0 ; i<10 ; i++) printf("%d\n",arr[i]); } main() { second(); puts("\nWell, I survived!"); return 0; }

  23. Things to observe • Memory allocation for arrays • Array length is not stored with arrays • Potentional issues with scanf() and printf() • Different behavior when overshooting arrays in heap vs. in stack

  24. Sample C program: multiple files

  25. Compare with Java file1.java file3.java filen.java file2.java …

  26. C files & runtime environment file1.c file3.c filen.c file2.c …

  27. Debugging : gdb Compile with –g option to use the debugger. Most used commands: • run • list [method name] • break [line_number] • step • next • continue • print [variable]