Breakpoints and Functions
Breakpoints and Functions
Breakpoints in Functions
Introduction
We know that, in a source file, we can create functions. We can then involve breakpoints in the functions. We can create a breakpoint inside or outside a function.
Practical Learning: Introducing Breakpoints and Functions
using static System.Console; double GetValue(string identity, string msg) { double value = default; try { Write(identity); value = Convert.ToDouble(ReadLine()!); } catch (FormatException) { WriteLine(msg); } return value; } (double first, double second, double third) Calculate(TriangleType category, double known1, double known2, double known3) { double value1 = 0.00; double value2 = 0.00; double value3 = 0.00; switch (category) { case TriangleType.AngleAngleSide: // Here, we use the law of sines value1 = 180 - (known1 + known2); value2 = known3 * Math.Sin(known2 * Math.PI / 180) / Math.Sin(known1 * Math.PI / 180); value3 = known3 * Math.Sin(value1 * Math.PI / 180) / Math.Sin(known1 * Math.PI / 180); return (value1, value2, value3); case TriangleType.AngleSideAngle: // Here, we use the law of sines value1 = 180 - (known1 + known3); value2 = known2 * Math.Sin(known3 * Math.PI / 180) / Math.Sin(known1 * Math.PI / 180); value3 = known2 * Math.Sin(value1 * Math.PI / 180) / Math.Sin(known1 * Math.PI / 180); return (value1, value2, value3); case TriangleType.Unknown: return (0.00, 0.00, 0.00); case TriangleType.SideAngleSide: // Here, we use the law of cosines value1 = Math.Sqrt((known1 * known1) + (known3 * known3) - (2 * known1 * known3 * Math.Cos(known2 * Math.PI / 180))); value2 = Math.Acos(((value1 * value1) + (known3 * known3) - (known1 * known1)) / (2 * value1 * known3)) * 180 / Math.PI; value3 = 180 - (known2 + value2); return (value1, value2, value3); default: return (0.00, 0.00, 0.00); case TriangleType.SideSideSide: // Here, we use the law of cosines value1 = Math.Acos(((known3 * known3) + (known2 * known2) - (known1 * known1)) / (2 * known3 * known2)) * 180 / Math.PI; value2 = Math.Acos(((known3 * known3) + (known1 * known1) - (known2 * known2)) / (2 * known3 * known1)) * 180 / Math.PI; value3 = 180 - (value1 + value2); return (value1, value2, value3); } } void CalculateAAS() { double AASAngle1 = 0.00; double AASAngle2 = 0.00; double AASSide1 = 0.00; WriteLine("AAS Shape"); WriteLine("----------------------------------------------------------------------"); WriteLine("Known Values: Known Values: 2 sides and the 1 angle between them"); WriteLine("Sought Values: 2 angles and the 1 sides between them"); WriteLine("----------------------------------------------------------------------"); AASAngle1 = GetValue("AAS Angle 1: ", "You must type a value for the lower left angle of the AAS shape."); AASAngle2 = GetValue("AAS Angle 2: ", "You must type a value for the lower right angle of the AAS shape."); AASSide1 = GetValue("AAS Side 1: ", "You must type a value for the right side of the AAS shape."); (double AASAngle3, double AASSide2, double AASSide3) results = Calculate(TriangleType.AngleAngleSide, AASAngle1, AASAngle2, AASSide1); WriteLine("======================================================================"); WriteLine("Results"); WriteLine("----------------------------------------------------------------------"); WriteLine("AAS Angle 3: " + results.AASAngle3); WriteLine("AAS Side 2: " + results.AASSide2); WriteLine("AAS Side 3: " + results.AASSide3); } void CalculateASA() { double ASAAngle1 = 0.00; double ASAAngle2 = 0.00; double ASASide1 = 0.00; WriteLine("ASA Shape"); WriteLine("----------------------------------------------------------------------"); WriteLine("Known Values: 2 angles and the 1 side joining them"); WriteLine("Sought Values: 2 sides and the 1 angle between them"); WriteLine("----------------------------------------------------------------------"); ASAAngle1 = GetValue("ASA Angle 1: ", "You must type a value for one of the known angles of the ASA shape."); ASASide1 = GetValue("ASA Side 1: ", "You must type a value for the side that is between the angles whose values are about the ASA shape."); ASAAngle2 = GetValue("ASA Angle 2: ", "You must type a value for the other known angle of the ASA oblique triangle."); (double ASAAngle3, double ASASide2, double ASASide3) results = Calculate(TriangleType.AngleSideAngle, ASAAngle1, ASASide1, ASAAngle2); WriteLine("======================================================================"); WriteLine("Results"); WriteLine("----------------------------------------------------------------------"); WriteLine("ASA Angle 3: {0}", results.ASAAngle3); WriteLine("ASA Side 2: {0}", results.ASASide2); WriteLine("ASA Side 3: {0}", results.ASASide3); } void CalculateSAS() { WriteLine("SAS Shape"); WriteLine("----------------------------------------------------------------------"); WriteLine("Known Values: 2 sides and 1 angle"); WriteLine("Sought Values: 1 unknown side and 2 unknown angles"); WriteLine("----------------------------------------------------------------------"); WriteLine("Type the known values"); double SASSide1 = GetValue("SAS Side 1: ", "You must type a value for one of the known sides of the SAS shape."); double SASAngle1 = GetValue("SAS Angle 1: ", "You must type a value for the known angle of the SAS shape."); double SASSide2 = GetValue("SAS Side 2: ", "You must type a value for the other known side of the SAS shape."); (double SASSide3, double SASAngle2, double SASAngle3) results = Calculate(TriangleType.SideAngleSide, SASSide1, SASAngle1, SASSide2); WriteLine("======================================================================"); WriteLine("Results"); WriteLine("----------------------------------------------------------------------"); WriteLine("SAS Side 3: {0}", results.SASSide3); WriteLine("SAS Angle 2: {0}", results.SASAngle2); WriteLine("SAS Angle 3: {0}", results.SASAngle3); } void CalculateSSS() { WriteLine("SSS Shape"); WriteLine("----------------------------------------------------------------------"); WriteLine("Known Values: All 3 sides"); WriteLine("Sought Values: All 3 angles"); WriteLine("----------------------------------------------------------------------"); double SSSSide1 = 0.00; double SSSSide2 = 0.00; double SSSSide3 = 0.00; WriteLine("Type the known values"); SSSSide1 = GetValue("SSS Side 1: ", "You must type a value for one of the known sides of the SSS shape."); SSSSide2 = GetValue("SSS Side 2: ", "You must type a value for another side of the SSS triangle."); SSSSide3 = GetValue("SSS Side 3: ", "You must type a value for the remaining known side of the SSS oblique triangle."); (double SSSAngle1, double SSSAngle2, double SSSAngle3) results = Calculate(TriangleType.SideSideSide, SSSSide1, SSSSide2, SSSSide3); WriteLine("======================================================================"); WriteLine("Results"); WriteLine("----------------------------------------------------------------------"); WriteLine($"SSS Angle 1: {results.SSSAngle1}"); WriteLine($"SSS Angle 2: {results.SSSAngle2}"); WriteLine($"SSS Angle 3: {results.SSSAngle3}"); } WriteLine("======================================================================"); WriteLine("This application allows you to make calculations on oblique triangles"); WriteLine("======================================================================"); Title = "Oblique Triangles"; WriteLine("Available shape options:"); WriteLine("1 - AAS (Known: Angle - Angle - Side)"); WriteLine("2 - ASA (Known: Angle - Side - Angle)"); WriteLine("3 - SAS (Known: Side - Angle - Side)"); WriteLine("4 - SSS (Known: Side - Side - Side)"); WriteLine("Q - Quit"); Write("What type of triangle do you want to process? "); string selection = ReadLine()!; switch (selection) { case null: break; case "4": CalculateSSS(); break; case "3": CalculateSAS(); break; default: break; case "1": CalculateAAS(); break; case "2": CalculateASA(); break; } WriteLine("======================================================================"); public enum TriangleType { Unknown = 0, AngleAngleSide = 100, AngleSideAngle = 200, SideAngleSide = 500, SideSideSide = 700 }
Creating a Breakpoint for a Function
You can create a breakpoint in the body of a function. You can also create a breakpoint on the return value of a function; that is, where a function is called. After doing this, if you ask the compiler to Start Debugging, the execution would start but pause where the breakpoint was created.
Practical Learning: Introducing Breakpoints with Functions
====================================================================== This application allows you to make calculations on oblique triangles ====================================================================== Available shape options: 1 - AAS (Known: Angle - Angle - Side) 2 - ASA (Known: Angle - Side - Angle) 3 - SAS (Known: Side - Angle - Side) 4 - SSS (Known: Side - Side - Side) Q - Quit What type of triangle do you want to process? 1 AAS Shape ---------------------------------------------------------------------- Known Values: Known Values: 2 sides and the 1 angle between them Sought Values: 2 angles and the 1 sides between them ---------------------------------------------------------------------- AAS Angle 1: 13 AAS Angle 2: 17 AAS Side 1: 5 ====================================================================== Results ---------------------------------------------------------------------- AAS Angle 3: 150 AAS Side 2: 6.498562666788197 AAS Side 3: 11.1135287064645 ====================================================================== Press any key to close this window . . .
Creating Breakpoints for Functions
As you should know already, you can create as many breakpoints as you want in your project. In the same way, if you judge it necessry, you can create breakpoints inside or outside functions.
Practical Learning: Creating Breakpoints for Functions
====================================================================== This application allows you to make calculations on oblique triangles ====================================================================== Available shape options: 1 - AAS (Known: Angle - Angle - Side) 2 - ASA (Known: Angle - Side - Angle) 3 - SAS (Known: Side - Angle - Side) 4 - SSS (Known: Side - Side - Side) Q - Quit What type of triangle do you want to process? 3 SAS Shape ---------------------------------------------------------------------- Known Values: 2 sides and 1 angle Sought Values: 1 unknown side and 2 unknown angles ---------------------------------------------------------------------- Type the known values SAS Side 1: 35 SAS Angle 1: 117 SAS Side 2: 42 ====================================================================== Results ---------------------------------------------------------------------- SAS Side 3: 65.75509158410675 SAS Angle 2: 28.311396001995423 SAS Angle 3: 34.68860399800457 ====================================================================== Press any key to close this window . . .Notice that no breakpoint was accessed
====================================================================== This application allows you to make calculations on oblique triangles ====================================================================== Available shape options: 1 - AAS (Known: Angle - Angle - Side) 2 - ASA (Known: Angle - Side - Angle) 3 - SAS (Known: Side - Angle - Side) 4 - SSS (Known: Side - Side - Side) Q - Quit What type of triangle do you want to process? 2 ASA Shape ---------------------------------------------------------------------- Known Values: 2 angles and the 1 side joining them Sought Values: 2 sides and the 1 angle between them ---------------------------------------------------------------------- ASA Angle 1: 73.2 ASA Side 1: 117 ASA Angle 2: 54.1 ====================================================================== Results ---------------------------------------------------------------------- ASA Angle 3: 52.69999999999999 ASA Side 2: 99.00025245122877 ASA Side 3: 97.2197866020223 ====================================================================== Press any key to close this window . . .
Stepping Into Breakpoints
After creating breakpoints involved with functions, you can use the features of Step Into and/or the Step Over to debug your code.
Practical Learning: Stepping to Breakpoints with Functions
====================================================================== This application allows you to make calculations on oblique triangles ====================================================================== Available shape options: 1 - AAS (Known: Angle - Angle - Side) 2 - ASA (Known: Angle - Side - Angle) 3 - SAS (Known: Side - Angle - Side) 4 - SSS (Known: Side - Side - Side) Q - Quit What type of triangle do you want to process? 4 SSS Shape ---------------------------------------------------------------------- Known Values: All 3 sides Sought Values: All 3 angles ---------------------------------------------------------------------- Type the known values SSS Side 1: 5 SSS Side 2: 7 SSS Side 3: 10 ====================================================================== Results ---------------------------------------------------------------------- SSS Angle 1: 27.66044989930087 SSS Angle 2: 40.53580211131656 SSS Angle 3: 111.80374798938257 ====================================================================== Press any key to close this window . . .
|
|
|||
| Previous | Copyright © 2010-2026, FunctionX | Monday 13 July 2026, 12:29 | Next |
|
|
|||