c basics amp implementing fisher s exact test
play

C++ Basics & Implementing Fishers Exact Test Biostatistics - PowerPoint PPT Presentation

. . September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang September 11th, 2011 Hyun Min Kang C++ Basics & Implementing Fishers Exact Test Biostatistics 615/815 - Lecture 3 . . Summary . Classes


  1. . . September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang September 11th, 2011 Hyun Min Kang C++ Basics & Implementing Fisher’s Exact Test Biostatistics 615/815 - Lecture 3 . . Summary . Classes fastFishersExactTest FET Functions Echo Recap . . . . . . . . . . . 1 / 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  2. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . Writing helloWorld.cpp . Summary . Classes . FET Recap . . . . . . . . . . . Functions Echo 2 / 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . helloWorld.cpp : Getting Started with C++ ( ) // import input/output handling library int main(int argc, char** argv) { ( ) << "Hello, World" << std::endl; return 0; // program exits normally }

  3. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . towerOfHanoi.cpp . Summary . Classes . FET Recap . . . . . . . . . . . 3 / 37 Functions Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . towerOfHanoi.cpp : Tower of Hanoi Algorithm in C++ #include <iostream> #include <cstdlib> // include this for atoi() function // recursive function of towerOfHanoi algorithm void towerOfHanoi(int n, int s, int i, int d) { if ( n > 0 ) { towerOfHanoi(?,?,?,?); // recursively move n-1 disks from s to i // Move n-th disk from s to d std::cout << "Disk " << n << " : " << s << " -> " << d << std::endl; towerOfHanoi(?,?,?,?); // recursively move n-1 disks from i to d } } // main function int main(int argc, char** argv) { int nDisks = atoi(argv[1]); // convert input argument to integer towerOfHanoi(nDisks, 1, 2, 3); // run TowerOfHanoi(n=nDisks, s=1, i=2, d=3) return 0; }

  4. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . precisionExample.cpp . . Summary . Classes Recap - Floating Point Precisions 4 / 37 FET . Functions Echo Recap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #include <iostream> int main(int argc, char** argv) { float smallFloat = 1e-8; // a small value float largeFloat = 1.; // difference in 8 (>7.2) decimal figures. std::cout << smallFloat << std::endl; // prints ??? smallFloat = smallFloat + largeFloat; smallFloat = smallFloat - largeFloat; std::cout << smallFloat << std::endl; // prints ??? return 0; }

  5. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . pValueExample.cpp . . Summary . Classes Quiz - Precision Example 5 / 37 FET . Functions Echo Recap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #include <iostream> int main(int argc, char** argv) { float pUpper = 1e-8; // small p-value at upper tail float pLower = 1-pUpper; // large p-value at lower tail std::cout << "upper tail p = " << pUpper << std::endl; // prints ?? std::cout << "lower tail p = " << pLower << std::endl; // prints ?? float pLowerComplement = 1-pLower; // complement of lower tail std::cout << "complement lower tail p = " << pLowerComplement << std::endl; // prints ?? return 0; }

  6. . FET September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . Recap - Arrays and Pointers Summary . Classes fastFishersExactTest 6 / 37 . Recap . . . Functions . . . . . . . Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . int A[] = {2,3,5,7,11,13,17,19,21}; int* p = A; std::cout << p[0] << std::endl; // prints ?? std::cout << p[4] << std::endl; // prints ?? std::cout << *p << std::endl; // prints ?? std::cout << *(p+4) << std::endl; // prints ?? char s[] = "Hello"; std::cout << s << std::endl; // prints ?? std::cout << *s << std::endl; // prints ?? char *u = &s[3]; std::cout << u << std::endl; // prints ?? std::cout << *u << std::endl; // prints ?? char *t = s+3; std::cout << t << std::endl; // prints ?? std::cout << *t << std::endl; // prints ??

  7. . FET September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang Pointers and References Summary . Classes fastFishersExactTest . Functions . . . . . . . . . . . 7 / 37 Recap Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . int a = 2; int& ra = a; int* pa = &a; int b = a; ++a; std::cout << a << std::endl; // prints ?? std::cout << ra << std::endl; // prints ?? std::cout << *pa << std::endl; // prints ?? std::cout << b << std::endl; // prints ??

  8. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . Reference and value types . Pointers and References Summary . Classes . 8 / 37 FET . Functions Echo Recap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #include <iostream> int main(int argc, char** argv) { int A[] = {2,3,5,7}; int& r1 = A[0]; int& r2 = A[3]; int v1 = A[0]; int v2 = A[3]; A[3] = A[0]; std::cout << r1 << std::endl; // prints ?? std::cout << r2 << std::endl; // prints ?? std::cout << v1 << std::endl; // prints ?? std::cout << v2 << std::endl; // prints ?? }

  9. . fastFishersExactTest September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang name itself . . . Command line arguments . . Classes Summary 9 / 37 Recap . . . FET . . . . . . . . Functions Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . int main(int argc, char** argv) int argc Number of command line arguments, including the program char** argv List of command line arguments as double pointer • One * for representing ’array’ of strings • One * for representing string as ’array’ of characters ✓ argv[0] represents the program name (e.g., helloWorld ) ✓ argv[1] represents the first command-line argument ✓ argv[2] represents the second command-line argument ✓ · · · ✓ argv[argc-1] represents the last command-line argument

  10. . Classes September 11th, 2011 Biostatistics 615/815 - Lecture 3 Hyun Min Kang . . . . . . Handling command line arguments Summary . . fastFishersExactTest Recap . . . . . . . . . . . 10 / 37 Echo FET Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . echo.cpp - echoes command line arguments to the standard output #include <iostream> int main(int argc, char** argv) { for(int i=1; i < argc; ++i) { // i=1 : 2nd argument (skip program name) if ( i > 1 ) std::cout << " "; // print blank from 2nd element std::cout << argv[i]; // print each command line argument } std::cout << std::endl; // print end-of-line at the end std::cout << "Total number of arguments = " << argc << std::endl; return 0; } Compiling and running echo.cpp user@host:~/$ g++ -o echo echo.cpp user@host:~/$ ./echo 1 2 3 my name is foo 1 2 3 my name is foo Total number of arguments = 8

  11. int square(int a) { return (a*a); } int x = 5; std::cout << square(x) << std::endl; // prints 25 . . . . . . . . . . Calling functions Defining functions . . . . . . . Hyun Min Kang Biostatistics 615/815 - Lecture 3 September 11th, 2011 . . . fastFishersExactTest . . . . . . . . . . . Recap Echo Functions FET Body Body of function with ”return [value]” at the end 11 / 37 Classes . Summary Functions . Core element of function . . Type Type of return values Arguments List of comma separated input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  12. int x = 5; std::cout << square(x) << std::endl; // prints 25 . . Body Body of function with ”return [value]” at the end . Defining functions . . . Calling functions . . . . . . . . Hyun Min Kang Biostatistics 615/815 - Lecture 3 September 11th, 2011 Arguments List of comma separated input arguments Type Type of return values . . . . . . . . . . . . . Recap Echo Functions FET 11 / 37 Classes fastFishersExactTest . Summary Functions . Core element of function . . . . . . . . . . . . . . . . . . . . . . . . . . . . int square(int a) { return (a*a); }

  13. . . . . Type Type of return values Arguments List of comma separated input arguments Body Body of function with ”return [value]” at the end . Defining functions . . . Calling functions . . Hyun Min Kang Biostatistics 615/815 - Lecture 3 September 11th, 2011 . Core element of function Functions Echo . . . . . . . . . . . Recap Summary 11 / 37 FET Functions fastFishersExactTest Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . int square(int a) { return (a*a); } int x = 5; std::cout << square(x) << std::endl; // prints 25

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend