-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfunction.cpp
196 lines (181 loc) · 4.37 KB
/
function.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
hàm có giá trị trả về => kdl hàm <=> kdl của giá trị trả về
đi tính toán và muốn có giá trị trả về cho thằng khác tái sử dụng
----------
hàm ko có giá trị trả về =>kdl hàm <=> void
đi tính toán hoặc thực thi chức năng và ko muốn trả giá trị về cho thằng khác tái sử dụng
tham trị ko có & tạo bản sao cùng giá trị nhưng khác địa chỉ
code:
#include <iostream>
using namespace std;
void test(int a){
a=7;// a'=7
}
int main() {
int a =15;
test(a);
cout << a << endl;
return 0;
} output: a = 15
tham chiếu có &;
#include <iostream>
using namespace std;
void test(int &a){
a=7;// a=7
}
int main() {
int a =15;
test(a);
cout << a << endl;
return 0;
} output: a = 7
//---------- nâng cao -------------
4. Viết CT nhập vào ngày tháng năm. In ra màn hình ngày trước, và sau.
VD: nhập: 1/3/2019
xuất: Ngày trước: 28/2/2019 Ngày sau: 2/3/2019
Lưu ý: kiểm tra năm nhuận để tính ngày tháng 2
code
4.1 viết chương trình nhập vào ngày tháng năm tìm ngày sau:
vd ngay 31
thang 12
nam 2023 => ngày sau 1/1/2024
giải thích
30: 4,6,9,11 11,tháng +1
31: 1,3,5,7,8,10 1,tháng +1;
31 12 1/1/năm + 1;
2 năm 28/29
code:
#include<conio.h>
#include<iostream>
#include <cmath>
using namespace std;
int day_max(int month , int year){
switch(month){
case 2:{
if(year % 4 ==0 && year % 100 != 0 || year % 400 == 0){
return 29;
} else{
return 28;
}
}
case 4: case 6: case 9: case 11:{
return 30;
}
default:{
return 31;
}
}
}
void later_date(int day,int month,int year)
{
if(day == day_max(month , year))
{
if(month == 12)
{
cout << "later_date: 1/1/" << year + 1 << endl;
return;
}
cout << "later_date: 1/" << month + 1<< "/" << year << endl;
}
else
{
cout << "later_date:" << day + 1 << "/" << month<< "/" << year << endl;
}
}
int main(){
int day,month,year;
cout << "enter the date:";cin >> day;
cout << "enter month:";cin>> month;
cout << "enter the year:";cin >> year;
later_date(day,month,year);
}
5. Viết chương trình nhập giá tiền: từ 1k -> 900k
Xuất ra cách đọc tương ứng
VD: Nhập: 255000 Xuất: hai trăm năm mươi năm nghìn Việt Nam đồng
// Bài này được ứng dụng trong các đồ án quản lý vật tư
6. Viết chương trình in ra bảng cửu chương (không cần trình bày đẹp)
==============================================================================================================================
7. Viết ct Tính UCLN, BCNN 2 số nguyên a,b
8. viết ct nhập n số nguyên, tìm số lớn nhất, nhỏ nhất.// ko sử dụng mảng
9. Viết hàm nhập vào điểm -> xuất ra học lực của học sinh. // 9,10 giỏi, 78 khá, 456 tb, 0123 yếu
10. Viết ct hoán vị 2 số nguyên a,b
11. Viết hàm nhập vào tuổi -> xuất ra năm sinh
code:
🔴câu 7:
#include <iostream>
using namespace std;
int main(){
//liet ke cac uoc cua a : int a=8;
int a=8;// 8 7 6 5 4 3 2 1 => a%i == 0
int b=6;// 6 5 4 3 2 1 => b%i == 0
int min = (a<b) ? a : b;
for(int i = min;i>0;i--){
if(a%i == 0 && b% i == 0){
cout << i << endl;
break;
}
}
}
hoàn chỉnh: UCLN(a,b)
#include <iostream>
using namespace std;
int ucln(int a,int b){
int min = (a<b) ? a : b;
for(int i = min;i>0;i--){
if(a%i == 0 && b% i == 0){
return i;
}
}
}
int main(){
//liet ke cac uoc cua a : int a=8;
int a=8;// 8 7 6 5 4 3 2 1 => a%i == 0
int b=6;// 6 5 4 3 2 1 => b%i == 0
cout << ucln(a,b) << endl;
return 0;
}
🔴 hoàn chỉnh BCNN:
#include <iostream>
using namespace std;
int bcnn(int a, int b){
int max = (a>b) ?a:b;
c1:
while(true) {
if(max %a == 0 && max %b == 0){
return max;
}
max++;
}
c2:
while(max %a != 0 || max %b != 0){
max++;
}
return max;
}
int main(){
int a ,b ; cin >> a >> b;
cout << bcnn(a , b)<< endl;
return 0;
}
🔴 GIẢI THUẬT EUCLID <UCLN - BCNN>
#include <iostream>
using namespace std;
int ucln(int a,int b){
while(a != b){
if(a >b){
a = a-b;
}
else if(b > a){
b = b -a;
}
}
return a;
}
int bcnn(int a, int b){
return (a*b) / ucln(a , b);
}
int main(){
int a,b ; cin >> a,b;
cout << ucln(a,b) << endl;
cout << bcnn(a,b) << endl;
return 0;
}