Content text cam nang thuat toan.docx
CẨM NANG THUẬT TOÁN 1. Sử dụng codeblock, nhập/xuất file Link tải codeblock: https://www.fosshub.com/Code-Blocks.html?dwl=codeblocks-20.03mingw-setup.exe Xem video nhập/xuất file: https://youtu.be/lTSKL6tu8gk #include <bits/stdc++.h> using namespace std; long long cd, cr, s; int main(){ // freopen("dthcn.inp","r",stdin); // freopen("dthcn.out","w",stdout); cin>>cd>>cr; s = cd * cr; cout<<s; } 2. đọc xâu với getline, cin () Bài 1. CBXAUMAX Xâu lớn nhất và dài nhất Cho N xâu a 1 , a 2 , a 3 , a 4 , …, a N . Yêu cầu: 1. Tìm xâu lớn nhất theo thứ tự từ điển. 2. Tìm xâu dài nhất. Input: ● Dòng 1: số N (N ≤ 1000) ● N dòng sau: mỗi dòng chứa một xâu. Output ● Dòng 1: xâu lớn nhất. ● Dòng 2: xâu dài nhất. Giới hạn: 50% test các xâu không chứa dấu cách (khoảng trắng) bên trong các xâu Ví dụ: Input Output 4 Truong Luong The Vinh Truong
Vinh 4 tin hoc tre tinhoctre.vn lap trinh thieu nhi chuyentinpro tinhoctre.vn lap trinh thieu nhi giải ● Nếu dùng cin để đọc xâu thì sẽ không lưu được dấu cách (khoảng trắng) ● Dùng getline(cin,s) để đọc 1 xâu có chứa dấu cách vào biến s. Khai báo một mảng a, mỗi phần tử a[i] lưu 1 xâu. Nhập input để lưu các xâu vào a[] string a[1000],s; void nhap(){ cin >> n; getline(cin,s); //de con tro input nhay xuong dong tiep theo for(int i=1;i<=n;i++) getline(cin,a[i]); } a[] Truong Luong The Vinh 1 2 3 4 5 … 1000 1) Gọi maxx là chỉ số của phần tử lớn nhất cần tìm, lúc đầu xem a[1] là xâu lớn nhất, khởi tạo maxx:=1; Duyệt qua a[2], …, a[n], so sánh từng phần tử a[i] với a[maxx], nếu a[i] > a[maxx] thì cập nhật maxx:=i procedure xau_lon_nhat; maxx:=1; for i:=2 to n do if a[i]>a[maxx] then maxx:=i; writeln(a[maxx]); void xau_lon_nhat() int maxx=1; for(int i=2;i<=n;i++) if(a[i]>a[maxx]) maxx=i; cout << a[maxx] << endl; 2) Tương tự đặt dmax là chỉ số xâu dài nhất cần tìm, lúc đầu xem a[1] là xâu dài nhất, khởi tạo dmax:=1 Duyệt qua a[2], …, a[n], so sánh độ dài từng phần tử a[i] với a[dmax], nếu length(a[i]) > length(a[dmax]) thì cập nhật dmax:=i. procedure xau_dai_nhat; dmax:=1; for i:=2 to n do if length(a[i])>length(a[dmax]) then dmax:=i; writeln(a[dmax]); void xau_dai_nhat() int dmax=1; for(int i=2;i<=n;i++) if(a[i].size()>a[dmax].size()) dmax=i; cout << a[dmax] << endl; code c mẫu #include <bits/stdc++.h>
using namespace std; string a[100]; int n; void nhap() { cin >> n; string s; getline(cin,s); for(int i=0;i<n;i++) getline(cin,a[i]); } void xau_lon_nhat() { int max=0; for(int i=1;i<n;i++) { if(a[i]>a[max]) max=i; } cout << a[max] << endl; } void xau_dai_nhat() { int max=0; for(int i=1;i<n;i++) { if(a[i].length()>a[max].length()) max=i; } cout << a[max] << endl; } int main() { freopen("cbxaumax.inp","r",stdin); freopen("cbxaumax.out","w",stdout); nhap(); xau_lon_nhat(); xau_dai_nhat(); } code pascal mẫu, test https://ideone.com/TT1oic var a: array[1..1000] of string; max:string; n: longint; procedure nhap; var i: longint; begin readln(n);
for i:=1 to n do readln(a[i]); end; procedure lonnhat; var i: longint; begin max:=''; for i:=1 to n do if a[i]>max then max:=a[i]; writeln(max); end; procedure dainhat; var i: longint; begin max:=''; for i:=1 to n do if length(a[i])>length(max) then max:=a[i]; writeln(max); end; begin assign(input,'cbxaumax.inp'); reset(input); assign(output,'cbxaumax.out'); rewrite(output); nhap; lonnhat; dainhat; end. 3. đọc input không biết số dòng Cho một danh sách các số nguyên. Yêu cầu tính tổng các số nguyên đó. Input: gồm nhiều dòng, mỗi dòng ghi 1 số nguyên không quá 1000, có không quá 10 5 dòng. Output: ghi tổng các số nguyên Ví dụ: Input Output 1 3 2 6 5 2 4 1 7 19 giải s = 0;